Methods and systems for providing an actionable object within a third-party content slot of an information resource of a content publisher

ABSTRACT

Systems and methods for providing an actionable object within a third-party content slot of an information resource of a content publisher. A processor receives an indication of interest in providing, for display, a creative within at least one third-party content slot of an information resource of a content publisher. The information resource includes third-party content slots available to be reserved to serve creatives. The processor identifies, on the information resource, at least one third-party content slot available to be reserved to serve one or more creatives. The processor inserts an actionable object within the identified third-party content slot, the actionable object configured to generate a request to provide an interface for reserving the identified third-party content slot to display the creative responsive to an action being taken on the actionable object. The processor renders the information resource including the inserted actionable object within the identified third-party content slot.

BACKGROUND

In a computer networked environment such as the internet, entities suchas people or companies provide information for public display on webpages or other online documents. The documents can include informationprovided by the entities via a computing device for display on theinternet. Content can also be provided by third parties for display onthe documents together with the information provided by the entities.Thus, a person viewing a document can access the information that is thesubject of the document, as well as third party content that may or maynot be related to the subject matter of the document.

SUMMARY

At least one aspect is directed to a computer implemented method ofpredicting a conversion rate of a content publisher-third-party contentprovider pair. A processor identifies, from log data, a plurality ofcontent publisher-provider pairs. Each content publisher-provider paircorresponds to a third-party content provider associated with at leastone creative receiving at least one conversion when served on one ormore information resources of the content publisher. The processordetermines, for each content publisher-provider pair, from the log data,a conversion rate that corresponds to a ratio of a number of conversionsassociated with the at least one creative to a number of impressionsreceived by the at least one creative when served on the one or moreinformation resources of the content publisher. The processordetermines, for each content publisher-provider pair, feature data ofthe content publisher and feature data of the third-party contentprovider. The processor then transforms the determined feature data ofthe content publishers and third-party content providers and theconversion rates of the plurality of content publisher-provider pairsinto a model useful for predicting a conversion rate of a given contentpublisher-provider pair different from the identified plurality ofcontent publisher-provider pairs. In some implementations, theconversion rate prediction model is a regression model.

In some implementations, the processor identifies a candidate contentpublisher-provider pair different from the identified plurality ofcontent publisher-provider pairs. The processor then predicts aconversion rate of the candidate content publisher-provider pair usingthe model for predicting a conversion rate of a given contentpublisher-provider pair.

In some implementations, the conversion rate for a contentpublisher-provider pair is a click through rate. The processor candetermine the click through rate by calculating a ratio of a number ofclicks on at least one creative of the third-party content providerprovided for display on a resource of the content publisher to a totalnumber of impressions received by the at least one creative of thethird-party content provider provided for display on the resource of thecontent publisher.

In some implementations, the processor can determine, for each contentpublisher-provider pair, feature data of the content publisher andfeature data of the third-party content provider by determining featuredata of the content publisher and the third-party content provider basedon one or more of topics of content included in information resources ofthe content publisher and information resources of the third-partycontent provider, language and geo-locality.

In some implementations, the processor receives, from a third-partycontent provider, a request for a list of content publishers having atleast one information resource on which to serve creatives. Theprocessor then determines feature data of the third-party contentprovider. The processor identifies a plurality of candidate contentpublishers on which creatives of the third-party content provider can beserved. The processor then determines feature data of the identifiedplurality of content publishers. The processor then determines, usingthe model, for each of the plurality of candidate content publishers andthe third-party content provider associated with the request, apredicted conversion rate of the content publisher-provider pair basedon the feature data of the candidate content publisher and feature dataof the third-party content provider. In some implementations, theprocessor can provide, to the third-party content provider, the list ofcontent publishers having at least one resource on which to servecreatives, the list including the plurality of candidate contentpublishers and the determined predicted conversion rate of the contentpublisher-provider pair.

In some implementations, the processor can receive, from a contentpublisher, a request for a list of third-party content providers havingat least one creative to serve on a resource of the content publisher.The processor can determine feature data of the content publisher. Theprocessor can then identify a plurality of candidate third-party contentproviders having at least one creative to serve on a resource of thecontent publisher. The processor can determine feature data of theidentified plurality of candidate third-party content providers. Theprocessor can then determine, using the model, for each of the pluralityof candidate third-party content providers and the content publisherassociated with the request, a predicted conversion rate of the contentpublisher-provider pair based on the feature data of the candidatecontent publisher and feature data of the third-party content provider.In some implementations, the processor can provide, to the contentpublisher, the list of third-party content providers having at least onecreative to serve on a resource of the content publisher, the listincluding the plurality of candidate third-party content providers andthe determined predicted conversion rate of the contentpublisher-provider pair.

In some implementations, to determine, from the log data, a conversionrate for each content publisher-provider pair, the processor candetermine, from the log data, a total number of impressions received bycreatives of the third-party content provider and determine a totalnumber of conversions received by the creative of the third-partycontent provider. The processor can further determine a ratio of thetotal number of conversions to the total number of impressions.

At least one aspect is directed to a system of predicting a conversionrate of a content publisher-third-party content provider pair. Thesystem includes a data processing system configured to identify, fromlog data, a plurality of content publisher-provider pairs. Each contentpublisher-provider pair corresponds to a third-party content providerassociated with at least one creative receiving at least one conversionwhen served on one or more information resources of the contentpublisher. The data processing system is configured to determine, foreach content publisher-provider pair, from the log data, a conversionrate that corresponds to a ratio of a number of conversions associatedwith the at least one creative to a number of impressions received bythe at least one creative when served on the one or more informationresources of the content publisher. The data processing system isconfigured to determine, for each content publisher-provider pair,feature data of the content publisher and feature data of thethird-party content provider. The data processing system is configuredto then transform the determined feature data of the content publishersand third-party content providers and the conversion rates of theplurality of content publisher-provider pairs into a model useful forpredicting a conversion rate of a given content publisher-provider pairdifferent from the identified plurality of content publisher-providerpairs. In some implementations, the conversion rate prediction model isa regression model.

In some implementations, the data processing system is furtherconfigured to identify a candidate content publisher-provider pairdifferent from the identified plurality of content publisher-providerpairs. The data processing system is configured to then predict aconversion rate of the candidate content publisher-provider pair usingthe model for predicting a conversion rate of a given contentpublisher-provider pair.

In some implementations, the conversion rate for a contentpublisher-provider pair is a click through rate. The data processingsystem can determine the click through rate by calculating a ratio of anumber of clicks on at least one creative of the third-party contentprovider provided for display on a resource of the content publisher toa total number of impressions received by the at least one creative ofthe third-party content provider provided for display on the resource ofthe content publisher.

In some implementations, the data processing system can determine, foreach content publisher-provider pair, feature data of the contentpublisher and feature data of the third-party content provider bydetermining feature data of the content publisher and the third-partycontent provider based on one or more of topics of content included ininformation resources of the content publisher and information resourcesof the third-party content provider, language and geo-locality.

At least one aspect is directed to a computer-readable storage mediumdevice storing instructions that when executed by one or more dataprocessors, cause the one or more data processors to perform operationsfor predicting a conversion rate of a content publisher-third-partycontent provider pair. The operations include identifying, from logdata, a plurality of content publisher-provider pairs. Each contentpublisher-provider pair corresponds to a third-party content providerassociated with at least one creative receiving at least one conversionwhen served on one or more information resources of the contentpublisher. The operations include determining, for each contentpublisher-provider pair, from the log data, a conversion rate thatcorresponds to a ratio of a number of conversions associated with the atleast one creative to a number of impressions received by the at leastone creative when served on the one or more information resources of thecontent publisher. The operations include determining, for each contentpublisher-provider pair, feature data of the content publisher andfeature data of the third-party content provider. The operations includetransforming the determined feature data of the content publishers andthird-party content providers and the conversion rates of the pluralityof content publisher-provider pairs into a model useful for predicting aconversion rate of a given content publisher-provider pair differentfrom the identified plurality of content publisher-provider pairs. Insome implementations, the conversion rate prediction model is aregression model.

In some implementations, the operations further include identifying acandidate content publisher-provider pair different from the identifiedplurality of content publisher-provider pairs. The operations includepredicting a conversion rate of the candidate content publisher-providerpair using the model for predicting a conversion rate of a given contentpublisher-provider pair.

In some implementations, the conversion rate for a contentpublisher-provider pair is a click through rate. The operations caninclude determining the click through rate by calculating a ratio of anumber of clicks on at least one creative of the third-party contentprovider provided for display on a resource of the content publisher toa total number of impressions received by the at least one creative ofthe third-party content provider provided for display on the resource ofthe content publisher.

At least one aspect is directed to a computer implemented method ofreserving a particular third-party content slot of an informationresource of a content publisher. A processor of a data processing systemreceives, responsive to an action to an object included within aninformation resource of a content publisher, a request to receiveinformation for inserting a creative within one or more third-partycontent slots available on the information resource. The requestidentifies the information resource of the content publisher. Theprocessor provides, for display, an interface that includes theinformation regarding inserting the creative within one or morethird-party content slots on the information resource of the contentpublisher. The information identifies a plurality of third-party contentslots and costs associated with inserting the creative within each ofthe plurality of third-party content slots. The processor receives, viathe interface, a request to insert a creative within a particularthird-party content slot of the plurality of third-party content slotsaccording to a reservation policy. The request identifies the creativeto insert in the particular third-party content slot and the reservationpolicy identifies one or more rules according to which the creative isto be provided for display within the third-party content slot of theinformation resource. The processor stores data associated with therequest to insert the creative within the particular third-party contentslot. The stored data is useful to provide, for display, the creativewithin the particular third-party content slot of the informationresource according to the reservation policy.

In some implementations, the interface includes information pertainingto third-party content slots included within the information resource ofthe content publisher and information pertaining to third-party contentslots included within any information resource associated with theinformation resource of the content publisher. In some implementations,the interface includes a preview of the information resource of thecontent publisher. The preview identifies the third-party content slotsin which creatives are insertable.

In some implementations, the processor receives, from log data,statistics pertaining to the information resource. The statisticsinclude one or more of an average number of daily impressions, one of asize of the third-party content slot and a size of a creative insertablewithin the third-party content slot, and one or more topics with whichthe information resource is associated.

In some implementations, the processor determines a cost associated withinserting the creative within the third-party content slot according tothe reservation policy. The processor provides, for display, thedetermined cost associated with inserting the creative within thethird-party content slot according to the reservation policy. In someimplementations, the reservation policy includes an indication of a timeperiod over which to display the creative.

In some implementations, the processor receives, from a contentpublisher, a request to manage third-party content slot reservation andprovides, to the content publisher, an object for insertion into asource code of the information resource of the content publisher. Insome implementations, the object is provided as one of a link and acontent item within a content slot.

At least one aspect is directed to a system of reserving a particularthird-party content slot of an information resource of a contentpublisher. The system includes a data processing system configured toreceive, responsive to an action to an object included within aninformation resource of a content publisher, a request to receiveinformation for inserting a creative within one or more third-partycontent slots available on the information resource. The requestidentifies the information resource of the content publisher. The dataprocessing system is also configured to provide, for display, aninterface that includes the information regarding inserting the creativewithin one or more third-party content slots on the information resourceof the content publisher. The information identifies a plurality ofthird-party content slots and costs associated with inserting thecreative within each of the plurality of third-party content slots. Thedata processing system is also configured to receive, via the interface,a request to insert a creative within a particular third-party contentslot of the plurality of third-party content slots according to areservation policy. The request identifies the creative to insert in theparticular third-party content slot and the reservation policyidentifies one or more rules according to which the creative is to beprovided for display within the third-party content slot of theinformation resource. The data processing system is also configured tostore data associated with the request to insert the creative within theparticular third-party content slot. The stored data is useful toprovide, for display, the creative within the particular third-partycontent slot of the information resource according to the reservationpolicy.

In some implementations, the interface includes information pertainingto third-party content slots included within the information resource ofthe content publisher and information pertaining to third-party contentslots included within any information resource associated with theinformation resource of the content publisher. In some implementations,the interface includes a preview of the information resource of thecontent publisher. The preview identifies the third-party content slotsin which creatives are insertable.

In some implementations, the processor receives, from log data,statistics pertaining to the information resource. The statisticsinclude one or more of an average number of daily impressions, one of asize of the third-party content slot and a size of a creative insertablewithin the third-party content slot, and one or more topics with whichthe information resource is associated.

In some implementations, the data processing system is also configuredto determine a cost associated with inserting the creative within thethird-party content slot according to the reservation policy. The dataprocessing system is also configured to provide, for display, thedetermined cost associated with inserting the creative within thethird-party content slot according to the reservation policy. In someimplementations, the reservation policy includes an indication of a timeperiod over which to display the creative.

In some implementations, the data processing system is also configuredto receive, from a content publisher, a request to manage third-partycontent slot reservation and provides, to the content publisher, anobject for insertion into a source code of the information resource ofthe content publisher. In some implementations, the object is providedas one of a link and a content item within a content slot.

At least one aspect is directed to a computer-readable storage mediumdevice storing instructions that when executed by one or more dataprocessors, cause the one or more data processors to perform operationsfor reserving a particular third-party content slot of an informationresource of a content publisher. The operations include responsive to anaction to an object included within an information resource of a contentpublisher, receiving, a request to receive information for inserting acreative within one or more third-party content slots available on theinformation resource, the request identifying the information resourceof the content publisher. The operations also include providing, fordisplay, an interface that includes the information regarding insertingthe creative within one or more third-party content slots on theinformation resource of the content publisher, the informationidentifying a plurality of third-party content slots and costsassociated with inserting the creative within each of the plurality ofthird-party content slots. The operations also include receiving, viathe interface, a request to insert a creative within a particularthird-party content slot of the plurality of third-party content slotsaccording to a reservation policy, the request identifying the creativeto insert in the particular third-party content slot and a reservationpolicy identifying one or more rules according to which the creative isto be provided for display within the third-party content slot of theinformation resource. The operations also include storing dataassociated with the request to insert the creative within the particularthird-party content slot, the stored data useful to provide, fordisplay, the creative within the particular third-party content slot ofthe information resource according to the reservation policy.

In some implementations, the interface includes information pertainingto third-party content slots included within the information resource ofthe content publisher and information pertaining to third-party contentslots included within any information resource associated with theinformation resource of the content publisher. In some implementations,the interface includes a preview of the information resource of thecontent publisher. The preview identifies the third-party content slotsin which creatives are insertable.

In some implementations, the operations further include receiving, fromlog data, statistics pertaining to the information resource, thestatistics including one or more of an average number of dailyimpressions, one of a size of the third-party content slot and a size ofa creative insertable within the third-party content slot, and one ormore topics with which the information resource is associated.

At least one aspect is directed to a computer implemented method ofproviding an actionable object within a third-party content slot of aninformation resource of a content publisher. A processor of a dataprocessing system receives an indication of interest in providing, fordisplay, a creative within at least one third-party content slot of aninformation resource of a content publisher. The information resourceincludes one or more third-party content slots available to be reservedto serve one or more creatives. The processor identifies, on theinformation resource, at least one third-party content slot available tobe reserved to serve one or more creatives. The processor inserts anactionable object within the identified third-party content slot, theactionable object configured to generate a request to provide aninterface for reserving the identified third-party content slot todisplay the creative responsive to an action being taken on theactionable object. The processor renders the information resourceincluding the inserted actionable object within the identifiedthird-party content slot.

In some implementations, the processor receives an indication of anaction taken on the actionable object and provides the interface forreserving the identified third-party content slot content slot.

In some implementations, providing the interface for reserving theidentified third-party content slot includes rendering information forreserving one or more of the third-party item slots of the informationresource. In some implementations, providing the interface for reservingthe identified third-party content slot includes rendering a preview ofthe information resource. The preview of the information resourceincludes at least one label identifying the identified third-partycontent slot.

In some implementations, an indication of interest in providing, fordisplay, a creative within at least one third-party content slot of aninformation resource includes receiving the request responsive to anaction being taken on a view-changing actionable object. Theview-changing actionable object is configured to cause the processor torender the information resource including the inserted actionable objectwithin the identified third-party content slot.

In some implementations, identifying, on the information resource, atleast one at least one third-party content slot includes identifying oneor more third-party content slots having a tag. The tag indicates thatthe third-party content slot is configured to allow a creative to beinserted via a specific content placement management application.

In some implementations, the information resource includes a firstthird-party content slot configured to be reserved to display thecreative and a second third-party content slot configured to displaycreatives selected for insertion via an content placement auction.

In some implementations, the actionable object is sized to fit withinthe identified third-party content slot and includes a visualrepresentation of one of a link, a button and a banner.

In some implementations, receiving the request includes receiving therequest responsive to an information resource of a content publisherincluding one or more third-party content slots rendered on a computingdevice.

At least one aspect is directed to a system of providing an actionableobject within a third-party content slot of an information resource of acontent publisher. The system includes a data processing systemconfigured to receive an indication of interest in providing, fordisplay, a creative within at least one third-party content slot of aninformation resource of a content publisher. The information resourceincludes one or more third-party content slots available to be reservedto serve one or more creatives. The data processing system is configuredto identify, on the information resource, at least one third-partycontent slot available to be reserved to serve one or more creatives.The data processing system is configured to insert an actionable objectwithin the identified third-party content slot. The actionable object isconfigured to generate a request to provide an interface for reservingthe identified third-party content slot to display the creativeresponsive to an action being taken on the actionable object. The dataprocessing system is configured to render the information resourceincluding the inserted actionable object within the identifiedthird-party content slot.

In some implementations, the data processing system is configured toreceive an indication of an action taken on the actionable object andprovides the interface for reserving the identified third-party contentslot content slot.

In some implementations, providing the interface for reserving theidentified third-party content slot includes rendering information forreserving one or more of the third-party item slots of the informationresource. In some implementations, providing the interface for reservingthe identified third-party content slot includes rendering a preview ofthe information resource. The preview of the information resourceincludes at least one label identifying the identified third-partycontent slot.

In some implementations, an indication of interest in providing, fordisplay, a creative within at least one third-party content slot of aninformation resource includes receiving the request responsive to anaction being taken on a view-changing actionable object. Theview-changing actionable object is configured to cause the processor torender the information resource including the inserted actionable objectwithin the identified third-party content slot.

In some implementations, identifying, on the information resource, atleast one at least one third-party content slot includes identifying oneor more third-party content slots having a tag. The tag indicates thatthe third-party content slot is configured to allow a creative to beinserted via a specific content placement management application.

In some implementations, the information resource includes a firstthird-party content slot configured to be reserved to display thecreative and a second third-party content slot configured to displaycreatives selected for insertion via an content placement auction.

In some implementations, the actionable object is sized to fit withinthe identified third-party content slot and includes a visualrepresentation of one of a link, a button and a banner.

In some implementations, receiving the request includes receiving therequest responsive to an information resource of a content publisherincluding one or more third-party content slots rendered on a computingdevice.

At least one aspect is directed to a computer-readable storage mediumdevice storing instructions that when executed by one or more dataprocessors, cause the one or more data processors to perform operationsfor providing an actionable object within a third-party content slot ofan information resource of a content publisher. The operations includereceiving an indication of interest in providing, for display, acreative within at least one third-party content slot of an informationresource of a content publisher, the information resource including oneor more third-party content slots available to be reserved to serve oneor more creatives, The operations include identifying, on theinformation resource, at least one third-party content slot included inthe information resource available to be reserved to serve one or morecreatives. The operations include inserting an actionable object withinthe identified third-party content slot, the actionable objectconfigured to generate a request to provide an interface for reservingthe identified third-party content slot to display the creativeresponsive to an action being taken on the actionable object. Theoperations include rendering the information resource including theinserted actionable object within the identified third-party contentslot. In some implementations, the operations include receiving anindication of an action taken on the actionable object and providing theinterface for reserving the identified third-party content slot contentslot.

At least one aspect is directed to a computer implemented method ofautomatically resizing a creative based on dimensions of a content slot.A processor of a data processing system receives a creative includingone or more visual content items, the creative having a first set ofdimensions. The processor determines a content slot in which to insertthe creative. The content slot has a second set of dimensions. Theprocessor determines an aspect ratio of the creative and an aspect ratioof the content slot. The processor applies edge detection to identifyedges of the visual content items included in the creative. Theprocessor applies a bounding box around a substantial portion of theidentified edges of the content items. The bounding box is sized to havean aspect ratio that corresponds to a smaller of the aspect ratio of thecreative and the aspect ratio of the content slot. The processor thenresizes the bounding box to fit within the second set of dimensionscorresponding to the content slot.

In some implementations, applying edge detection includes applyinglaplacian edge detection. In some implementations, applying edgedetection includes applying gradient edge detection. In someimplementations, applying edge detection includes applying differentialedge detection to detect sub-pixels.

In some implementations, the processor inserts a margin between theboundary and the identified edges. In some implementations, theprocessor determines, using heuristics, a predetermined size for themargin to be inserted between the boundary and the identified edges. Insome implementations, the processor determining a size for the margin tobe inserted between the boundary and the identified edges based on anaspect ratio of the boundary and an aspect ratio of the second set ofdimensions corresponding to the content slot.

In some implementations, applying a bounding box around a substantialportion of the identified edges of the content items includes applying asmallest bounding box that encompasses at least 95% of pixels associatedwith content items included in the creative. In some implementations,the processor determines that the bounding box cannot be sized toinclude substantially all portions of all of the visual content itemsand generates a notification indicating that the creative cannot beautomatically resized to fit within the dimensions of the content slot.

At least one aspect is directed to a system of automatically resizing acreative based on dimensions of a content slot. The system includes adata processing system configured to receive a creative including one ormore visual content items, the creative having a first set ofdimensions. The data processing system is configured to determine acontent slot in which to insert the creative, the content slot having asecond set of dimensions. The data processing system configured todetermine an aspect ratio of the creative and an aspect ratio of thecontent slot. The data processing system configured to apply edgedetection to identify edges of the visual content items included in thecreative. The data processing system configured to apply a bounding boxaround a substantial portion of the identified edges of the contentitems. The bounding box is sized to have an aspect ratio thatcorresponds to a smaller of the aspect ratio of the creative and theaspect ratio of the content slot. The data processing system configuredto resize the bounding box to fit within the second set of dimensionscorresponding to the content slot.

In some implementations, applying edge detection includes applyinglaplacian edge detection. In some implementations, applying edgedetection includes applying gradient edge detection. In someimplementations, applying edge detection includes applying differentialedge detection to detect sub-pixels.

In some implementations, the processor inserts a margin between theboundary and the identified edges. In some implementations, theprocessor determines, using heuristics, a predetermined size for themargin to be inserted between the boundary and the identified edges. Insome implementations, the processor determining a size for the margin tobe inserted between the boundary and the identified edges based on anaspect ratio of the boundary and an aspect ratio of the second set ofdimensions corresponding to the content slot.

In some implementations, applying a bounding box around a substantialportion of the identified edges of the content items includes applying asmallest bounding box that encompasses at least 95% of pixels associatedwith content items included in the creative. In some implementations,the processor determines that the bounding box cannot be sized toinclude substantially all portions of all of the visual content itemsand generates a notification indicating that the creative cannot beautomatically resized to fit within the dimensions of the content slot.

At least one aspect is directed to a computer-readable storage mediumdevice storing instructions that when executed by one or more dataprocessors, cause the one or more data processors to perform operationsfor automatically resizing a creative based on dimensions of a contentslot. The operations include receiving a creative including one or morevisual content items, the creative having a first set of dimensions. Theoperations include determining a content slot in which to insert thecreative, the content slot having a second set of dimensions. In someimplementations, the processor determines an aspect ratio of thecreative and an aspect ratio of the content slot. The operations includeapplying edge detection to identify edges of the visual content itemsincluded in the creative. The operations include applying a bounding boxaround a substantial portion of the identified edges of the contentitems. The bounding box is sized to have an aspect ratio thatcorresponds to a smaller of the aspect ratio of the creative and theaspect ratio of the content slot. The operations include resizing thebounding box to fit within the second set of dimensions corresponding tothe content slot. In some implementations, the operations includeinserting a margin between the boundary and the identified edges anddetermining, using heuristics, a predetermined size for the margin to beinserted between the boundary and the identified edges.

These and other aspects and implementations are discussed in detailbelow. The foregoing information and the following detailed descriptioninclude illustrative implementations of various aspects, and provide anoverview or framework for understanding the nature and character of theclaimed aspects and implementations. The drawings provide illustrationand a further understanding of the various aspects and implementations,and are incorporated in and constitute a part of this specification.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings are not intended to be drawn to scale. Likereference numbers and designations in the various drawings indicate likeelements. For purposes of clarity, not every component may be labeled inevery drawing. In the drawings:

FIG. 1 is a block diagram depicting one environment to predict aconversion rate of a content publisher-third-party content providerpair, according to an illustrative implementation;

FIG. 2 is a flow diagram depicting an method of predicting a conversionrate of a content publisher-third-party content provider pair, accordingto an illustrative implementation;

FIG. 3 is a block diagram depicting one environment to reserve aparticular third-party content slot of an information resource of acontent publisher, according to an illustrative implementation;

FIG. 4 is a display depicting an information resource, according to anillustrative implementation;

FIG. 5A is a screenshot of an interface for reserving a content slot ofthe information resource shown in FIG. 3, according to an illustrativeimplementation;

FIG. 5B is a screenshot of an interface for reserving a content slot ofthe information resource shown in FIG. 3, according to an illustrativeimplementation;

FIG. 6 is a flow diagram depicting an method of reserving a particularthird-party content slot of an information resource of a contentpublisher, according to an illustrative implementation;

FIG. 7 is a block diagram depicting one environment to provide anactionable object within a third-party content slot of an informationresource of a content publisher, according to an illustrativeimplementation;

FIG. 8A is a display depicting an information resource with anactionable object to identify content slots of the information resourcethat are available to be reserved, according to an illustrativeimplementation;

FIG. 8B is a display depicting an information resource having actionableobjects positioned within content slots of the information resource forreserving the content slots of the information resource shown in FIG.8A, according to an illustrative implementation;

FIG. 9 is a flow diagram depicting an method of providing an actionableobject within a third-party content slot of an information resource of acontent publisher, according to an illustrative implementation;

FIG. 10 is a block diagram depicting one environment to automaticallyresizing a creative based on dimensions of a content slot, according toan illustrative implementation;

FIGS. 11A-11E depict various stages of a process of automaticallyresizing a creative based on dimensions of a content slot, according toan illustrative implementation;

FIG. 12 is a flow diagram depicting an method of automatically resizinga creative based on dimensions of a content slot, according to anillustrative implementation; and

FIG. 13 is a block diagram illustrating a general architecture for acomputer system that may be employed to implement elements of thesystems and methods described and illustrated herein, according to anillustrative implementation.

DETAILED DESCRIPTION

Following below are more detailed descriptions of various conceptsrelated to, and implementations of, methods, apparatuses, and systemsrelating to direct placement of creatives of third-party contentproviders on information resources of content publishers. In a directcontent placement campaign that allows for direct placement ofcreatives, a content provider can reserve a content slot of aninformation resource of a content publisher such that each time theinformation resource is served, a creative of the content provider isprovided for display within the content slot of the informationresource. In particular, the present disclosure relates to methods,apparatuses and systems relating to predicting a conversion rate of aprovider-publisher pair, reserving content slots within an informationresource of a content publisher, providing actionable objects within acontent slot of an information resource of a content publisher andautomatically resizing a creative based on dimensions of a content slot.The various concepts introduced above and discussed in greater detailbelow may be implemented in any of numerous ways, as the describedconcepts are not limited to any particular manner of implementation.

Section A relates to methods, apparatuses and systems relating topredicting a conversion rate of a content publisher-third-party contentprovider pair.

Section B relates to methods, apparatuses and systems relating toreserving content slots within an information resource of a contentpublisher.

Section C relates to methods, apparatuses and systems relating toproviding actionable objects within a content slot of an informationresource of a content publisher.

Section D relates to methods, apparatuses and systems relating toautomatically resizing a creative based on dimensions of a content slot.

Online content publishers that publish primary content on informationresources, such as webpages and other documents, often generate revenuesby selling space on the information resources to third-party contentproviders. The space, often referred to as content slots, can beconfigured to include third-party content (for instance, ads) providedby the creatives that purchased the space. Some content publishersutilize a third-party content placement management entity to manage theselling or utilization of the content slot when the information resourceassociated with the content slot is served. Typically, the managemententity holds an auction to insert a creative in the content slot on animpression by impression basis. Via the auction, the management entityselects a creative of the highest bidder (for instance, a third-partycontent provider) and inserts the creative in the content slot for thegiven impression. Although the use of auctions is an efficient way forsmall content publishers to generate revenues via their informationresources, larger, more established content publishers that receive avery large number of impressions may use a direct content placementcampaign approach to increase revenues via their information resources.

In some implementations, the larger, more established content publishersmay sell space on their information resources directly to third-partycontent providers at a premium instead of providing creatives that areselected via an auction. In this way, the most expensive, premiuminventory which can result in the highest return on investment for athird-party content provider (for instance, an advertiser) is often soldon a direct basis, that is, as a result of an agreement on the pricebetween the content publisher and the third-party content provider, asopposed to an online auction.

A. Predicting a Conversion Rate of a Content Publisher-Third-PartyContent Provider Pair

FIG. 1 illustrates an system 100 for predicting a conversion rate of acontent publisher-third-party content provider pair via at least onecomputer network, such as the network 105. The network 105 can includecomputer networks such as the internet, local, wide, metro or other areanetworks, intranets, satellite networks, other computer networks such asvoice or data mobile phone communication networks, and combinationsthereof. The system 100 can also include at least one data processingsystem 110, e.g., at least one logic device such as a computing deviceor server having a processor to communicate via the network 105, forinstance with at least one content provider computing device 115, atleast one content publisher computing device 120, or at least one enduser computing device 125.

The data processing system 110 can include at least one server. Forinstance, the data processing system 110 can include a plurality ofservers located in at least one data center or server farm. In someimplementations, the data processing system 110 includes a contentplacement system, e.g., an ad server or ad placement system. The dataprocessing system 110 can include at least one content placementmanagement module 130, at least one conversion rate model generationmodule 132, at least one, at least one conversion rate prediction module134 and at least one database 140. The content placement managementmodule 130, the conversion rate model generation module 132 and theconversion rate prediction module 134 can each include at least oneprocessing unit, server, virtual server, circuit, engine, agent,appliance, or other logic device such as programmable logic arraysconfigured to communicate with the database 140 and with other computingdevices (e.g., the content provider computing device 115, the contentpublisher computing device 120, or the end user computing device 125)via the network 105.

The content placement management module 130, the conversion rate modelgeneration module 132 and the conversion rate prediction module 134 caninclude or execute at least one computer program or at least one script.The content placement management module 130, the conversion rate modelgeneration module 132 and the conversion rate prediction module 134 canbe separate components, a single component, or part of the dataprocessing system 110. The content placement management module 130, theconversion rate model generation module 132 and the conversion rateprediction module 134 can include combinations of software and hardware,such as one or more processors configured to execute one or more scriptsto obtain requests to initiate a content item placement campaign,identify information resources of the content publisher computing device120, provide a rendering of the information resource at the contentprovider computing device, identify content item slots (e.g., ad slotsor ad units) of the information resource, provide content items fordisplay in the rendering of the information resource, or receiveauthorization to provide content items for display with the informationresource at the end user computing device 125, for instance.

The content provider computing devices 115 can include servers or othercomputing devices operated by a content provider entity to providecontent items such as advertisements for display on informationresources at the end user computing device 125. The content provided bythe content provider computing device 115 can include third partycontent items (e.g., ads) for display on information resources such as awebsite or web page that includes primary content, e.g. content providedby the content publisher computing device 120. The content items canalso be displayed on a search results web page. For instance, thecontent provider computing device 115 can provide or be the source ofads or other content items for display in content slots of content webpages such as a web page of a company where the primary content of theweb page is provided by the company, or for display on a search resultslanding page provided by a search engine. The content items associatedwith the content provider computing device 115 can be displayed oninformation resources other than web pages, such as content displayed aspart of the execution of an application on a smartphone or other enduser computing device 125.

The content publisher computing devices 120 can include servers or othercomputing devices operated by a content publishing entity to provideprimary content for display via the network 105. For instance, thecontent publisher computing device 120 can include a web page operatorwho provides primary content for display on the web page. The primarycontent can include content other than that provided by the contentpublisher computing device 120, and the web page can include contentslots configured for the display of third party content items (e.g.,ads) from the content provider computing devices 115. For instance, thecontent publisher computing device 120 can operate the website of acompany and can provide content about that company for display on webpages of the website. The web pages can include content slots configuredfor the display of third party content items such as ads of the contentprovider computing device 115. In some implementations, the contentpublisher computing device 120 includes a search engine computing device(e.g. server) of a search engine operator that operates a search enginewebsite. The primary content of search engine web pages (e.g., a resultsor landing web page) can include results of a search as well as thirdparty content items displayed in content slots such as content itemsfrom the content provider computing device 115.

The end user computing devices 125 can include computing devicesconfigured to communicate via the network 105 to display data such asthe content provided by the content publisher computing device 120(e.g., primary web page content or other information resources) and thecontent provided by the content provider computing device 115 (e.g.,third party content items such as ads configured for display in acontent slot of a web page). The end user computing device 125, thecontent provider computing device 115, and the content publishercomputing device 120 can include desktop computers, laptop computers,tablet computers, smartphones, personal digital assistants, mobiledevices, end user computing devices, consumer computing devices,servers, clients, and other computing devices. The end user computingdevice 125, the content provider computing device 115, and the contentpublisher computing device 120 can include user interfaces such asmicrophones, speakers, touchscreens, keyboards, pointing devices, acomputer mouse, touchpad, or other input or output interfaces.

The data processing system 110 can include a content placementmanagement module 130, a conversion rate model generation module 132 anda conversion rate prediction module 134. The data processing system 110can be configured to identify, from log data, a plurality of contentpublisher-provider pairs, determine, for each content publisher-providerpair, from the log data, a conversion rate, determine, for each contentpublisher-provider pair, feature data of the content publisher andfeature data of the third-party content provider and transform thedetermined feature data of the content publishers and third-partycontent providers and the conversion rates of the plurality of contentpublisher-provider pairs into a model useful for predicting a conversionrate of a given content publisher-provider pair different from theidentified plurality of content publisher-provider pairs.

In some implementations, the data processing system 110 can beconfigured to identify pairings of third-party content providers andcontent publishers to establish a relationship in which the third-partycontent provider can provide content to insert within content slots ofinformation resources of the content publisher. In some implementations,the data processing system 110 can identify the pairings using log dataassociated with content items of third-party content providers that havebeen served on information resources of content publishers In someimplementations, the data processing system 110 may identify thepairings by generating a conversion rate prediction model that canpredict a conversion rate of creatives provided by the third-partycontent provider when served on information resources of the contentpublisher. In this way, the data processing system 110 can generate alist of candidate content publishers to a third-party content providerseeking information resources on which to serve creatives. Conversely,the data processing system 110 can generate a list of candidatethird-party content providers to a content publisher seeking creative toserve within content slots of information resources of the contentpublisher.

The content placement management module 130 can be part of, or caninclude scripts executed by, one or more servers in the data processingsystem 110. In some implementations, the content placement managementmodule 130 can aggregate and maintain log data. In some implementations,another module or system can aggregate or maintain the log data andcommunicate the log data to the content placement management module 130.In some implementations, the content placement management module 130 canstore the log data in a database, such as the database 140 of the dataprocessing system 110.

In some implementations, the content placement management module 130 canbe configured to update the log data each time a creative is served onan information resource. In some implementations, the content placementmanagement module 130 can create a new entry for each creative that isserved. In some implementations, the content placement management module130 can be configured to maintain log data for creative that are servedin content slots that are tagged. The content placement managementmodule 130 can be configured to monitor the tagged content slots. Insome implementations, the content placement management module 130 can beconfigured to receive a request to insert a creative in a content slotresponsive to a request to provide the information resource associatedwith the content slot for display. The content slot or informationresource can include a script or some other software construct thatallows the content placement management module 130 to receive requeststo insert creatives in content slots. In some implementations, thecontent placement management module 130 can provide the creative toinsert in the content slot each time a request to serve an informationresource is made by an end user computing device. In someimplementations, the content placement management module 130 can providethe creative to the content publisher along with one or more rulesindicating when to serve the creative. In some such implementations, thecontent placement management module 130 can be configured to determinehow many times a particular creative has been served along with otherinformation that can be used to create entries for the log data.

The log data can include activity information relating to one or morecreatives when served on one or more information resources. In someimplementations, serving a creative on an information resource canentail inserting the creative in a content slot of the informationresource and providing the information resource including the creativefor display at an end user computing device, such as the end usercomputing device 125. Activity information can correspond to the servingof a creative, a conversion of a creative, and so forth. A creative canreceive an impression when the creative is served on an informationresource. A creative can receive a conversion when a predefined actionis taken on the creative when the creative is served on the informationresource. A predefined action can include a click, an actuation of thecreative, a purchase made through the creative, providing informationthrough the creative, signing up for an account through the creative,amongst others.

The log data can include a plurality of entries, each of whichcorresponds to activity information related to a single impression of acreative. In some implementations, an entry can include informationidentifying the information resource (for instance, the webpage) and thewebsite associated with the information resource. The entry can alsoinclude information identifying a particular third-party content slot ofthe information resource in which the creative was inserted. In someimplementations, the entry can identify a type of third-party contentslot, for instance, if the content slot was a leaderboard, skyscraper,or bottom of page content slot. The entry can also include informationidentifying the third-party content provider, for instance, by a domainname of the landing page associated with the creative. In someimplementations, the third-party content provider can be identifiedbased on the content of the creative. In some implementations, the entrycan also include a cost for receiving an impression. In someimplementations, the cost can be cost per thousand impressions (CPM),cost per click, amongst others.

In some implementations, the entry can also include information relatingto any activity taken on the creative. For instance, the entry caninclude information indicating whether the creative was actuated(clicked on, hover over, etc.). In some implementations, the entry caninclude information relating to a conversion of the creative. Forinstance, the entry can include information indicating a transaction hasbeen performed, an amount of the transaction, signing up for an account,providing information, amongst others.

In some implementations, the content placement management module 130 canonly aggregate and maintain log data for creatives served on contentpublishers that have voluntarily opted to allow the content placementmanagement module to aggregate the log data. Moreover, the contentplacement management module 130 can only aggregate and maintain log datafor creatives inserted in content slots of information resources ofcontent publishers that the content publishers have voluntarily opted toallow the content placement management module to aggregate the log data.

The content placement management module 130 can be configured toidentify, from the log data, a plurality of content publisher-providerpairs. In some implementations, each of the plurality of contentpublisher-provider pairs can correspond to a third-party contentprovider associated with at least one creative receiving at least oneconversion when served on one or more information resources of thecontent publisher. In some implementations, each of the plurality ofcontent publisher-provider pairs can correspond to a third-party contentprovider associated with at least one creative receiving at least oneimpression when served on one or more information resources of thecontent publisher.

In some implementations, the content placement management module 130 canbe configured to identify a plurality of content publisher-providerpairs from a portion of the log data. In some implementations, theportion of log data used for the analysis can be filtered by one or morecontent publishers, one or more third-party content providers, or acombination of content publishers, third-party content providers. Insome implementations, the portion of log data used for the analysis canbe limited by geography, time, type of device of the end user computingdevice on which the information resources are served, amongst others. Insome implementations, the content placement management module 130 canonly identify content publisher-provider pairs associated with creativethat received a conversion within a predetermined time frame, forinstance, a day, a week, a month or a year, amongst others. In someimplementations, the content placement management module 130 may onlyanalyze log data corresponding to creative receiving impressions withina predetermined time frame, for instance, a day, a week, a month, ayear, amongst others.

The content placement management module 130 can identify the pluralityof content publisher-provider pairs by analyzing the log data. In someimplementations, the content placement management module 130 canidentify a first entry of the log data in which a creative associatedwith the first entry received a conversion. The content placementmanagement module 130 can identify a content publisher of theinformation resource including the content slot in which the creativewas inserted. The content placement management module 130 can alsoidentify a third-party content provider associated with the creative.The content placement management module 130 can then identify, for thecontent publisher-provider pair, other entries within the log data inwhich any creative of the identified third-party content providerreceived an impression when served on any information resourceassociated with the identified content publisher. The content placementmanagement module 130 can then determine, from the identified entries, atotal number of impressions received by the creatives of the third-partycontent provider when served on the one or more information resources ofthe identified content publisher. The content placement managementmodule 130 can then determine, from the identified entries, a totalnumber of conversions associated with the creatives that receivedimpressions. The content placement management module 130 can determinethe total number of conversions by identifying, from the identifiedentries of the data log, the number of entries that resulted in aconversion. The content placement management module 130 can thendetermine a conversion rate corresponding to the contentpublisher-provider pair by determining a ratio of the total number ofconversions associated with the creatives that received impressions tothe total number of impressions received by the creatives of theprovider when served on the one or more information resources of thecontent publisher.

In some implementations, the content placement management module 130 canrecursively identify, from the log data, a plurality of contentpublisher-provider pairs. In some implementations, the content placementmanagement module 130 can identify a second entry of the log data thatcorresponds to a creative associated with a second contentpublisher-provider pair that is different from the first contentpublisher-provider pair and also corresponds to receiving a conversion.The content placement management module 130 can then identify allentries in the log data that correspond to the second contentpublisher-provider pair and determine the conversion rate correspondingto the second content publisher-provider pair. In this manner, thecontent placement management module 130 can identify a plurality ofdifferent content publisher-provider pairs, each of which having atleast one creative that received a conversion when served on aninformation resource

The conversion rate model generation module 132 can be part of, or caninclude scripts executed by, one or more servers in the data processingsystem 110. The conversion rate model generation module 132 can be partof the same or a different server as the content placement managementmodule 130 in the data processing system 110. The conversion rate modelgeneration module 132 can be configured to generate a conversion rateprediction model. To do so, the conversion rate model generation module132 can be configured to determine the conversion rates corresponding toeach of the content publisher-provider pairs identified by the contentplacement management module 130.

In some implementations, the conversion rate for a contentpublisher-provider pair can be a click through rate. In someimplementations, the conversion rate model generation module 132 candetermine the click-through rate by calculating a ratio of a number ofclicks on one or more creatives of the third-party content provider thatreceived an impression when served on one or more information resourcesof the content publisher to a total number of impressions received bythe creatives of the third-party content provider when served on theinformation resources of the content publisher. In some implementations,to determine the conversion rate, the conversion rate model generationmodule 132 can determine, from the log data, a total number ofimpressions received by a plurality of creatives of the third-partycontent provider on a plurality of information resources of the contentpublisher. In some implementations, the conversion rate model generationmodule 132 can first identify all entries included in the log data inwhich any creative of the third-party content provider received animpression when served on any information resource of the contentpublisher. The conversion rate model generation module 132 can thendetermine a total number of conversions received by the creatives of thethird-party content provider that received an impression when served onany information resources of the content publisher. The conversion ratemodel generation module 132 can then determine a ratio of the totalnumber of conversions to the total number of impressions. In someimplementations, a conversion can be identified as a purchase,subscribing to an email list, or taking a specified action, amongstothers.

The conversion rate model generation module 132 can be configured todetermine, for each identified content publisher-provider pair, featuredata for the content publisher of the content publisher-provider pair.The feature data for the content publisher can be based on one or morefeatures, including content included in the information resources of thecontent publisher, the language in which the content included in theinformation resources is published, the geo-locality associated with thecontent included in the information resources, amongst others. In someimplementations, the feature data can be represented as a feature vectorin a multi-dimensional space. In some implementations, each dimension ofthe feature vector can correspond to one or more of topics associatedwith content included in the information resources, the language inwhich the content is published, the geo-locality associated with thecontent and the content publisher, amongst others. In someimplementations, the feature vector can be weighted such that topicsassociated with content in information resources that included creativesthat received a lot of conversions receive a greater weight than topicsthat are associated with content included in information resources thatincluded creative that received fewer conversions. In someimplementations, clustering can be used to determine topics of contentincluded in the information resources of a content publisher. Thesetopics can be used to determine feature data.

The conversion rate model generation module 132 can also be configuredto determine, for each content publisher-provider pair, feature data forthe third-party content provider of the content publisher-provider pair.The feature data for the provider can be based on one or more features,including content included in the creative of the third-party contentprovider and the content included in information resources of thethird-party content provider. In some implementations, the informationresources of the third-party content provider include the landing pagesof the creative. In some implementations, the information resources ofthe third-party content provider include other web pages associated withthe website of the third-party content provider. The feature data canalso be based on the language in which the content included in thecreatives and information resources of the provider are published, thegeo-locality associated with the content included in the informationresources of the provider, amongst others. In some implementations, thefeature data of the provider can also be represented as a feature vectorin a multi-dimensional space. In some implementations, each dimension ofthe feature vector can correspond to one or more of topics associatedwith content included in the information resources, the language inwhich the content is published, the geo-locality associated with thecontent and the content publisher, amongst others.

The conversion rate model generation module 132 can be configured totransform the aggregate feature data of the content publishers, thefeature data of the third-party content providers and the determinedconversion rates of the content publisher-provider pairs to a conversionrate prediction model. The conversion rate prediction model is a modelto predict a conversion rate of a creative of a third-party content whenserved on an information resource of a content publisher. The conversionrate prediction model can also be used to assess a quality of aparticular content publisher-provider pair, rank existing contentpublisher-provider pairs according to their associated conversion rates,and identify new content publisher-provider pairs likely to besuccessful based on their predicted conversion rates.

In some implementations, the conversion rate model generation module132, for each content publisher-provider pair, can determine a linearrelationship between a content publisher g and the third-party contentprovider a. In some implementations, the conversion rate modelgeneration module 132 can determine a feature vector ω=Φ(g) of thecontent publisher g and a feature vector δ=Φ(a) of the third-partycontent provider a. In some implementations, the conversion rate modelgeneration module 132 may assume that a relationship between thethird-party content provider a and the content publisher g can berepresented as a linear relationship between corresponding features. Insome implementations, the conversion rate model generation module 132can rely on the Bayesian assumption, that is, the presence or absence ofany j-th feature will not affect presence or absence of i-th feature ofthe feature vector. The cumulative differences between specific featuresof the third-party content provider a and the content publisher g cancorrespond to a quality of the placement p(g, a), as well as a qualityscore E(g, a) of the placement p(g, a) indicating a measure of quality.The quality score can be loosely expressed according to the following:

E(g,a)˜E′(g,a)=Σα_(i)[δ_(i)−ω_(i)]

Here, the difference between specific features δ_(i)−ω_(i) can be theexplanatory variables and E′ can be a dependent variable of the multiplelinear regression. Multiple linear regression attempts to model therelationship between two or more explanatory variables and a responsevariable by fitting a linear equation to observed data. Since E˜E′, forscoring purposes, the content placement management module 130 can use E′as a substitute for unknown E. For the purpose of regression, theconversion rate model generation module 132 can consider all pairwisecombinations of content publisher-provider pairs (g, a) as a singleexplanatory variable X_(g,a) expressed as follows:

$X_{g,a} = \begin{pmatrix}\delta_{1} \\\ldots \\\delta_{n} \\\omega_{1} \\\ldots \\\omega_{n}\end{pmatrix}$

The goal of linear regression is to find a coefficient 13 that E′(g,a)=X_(g,a)β. To achieve this, the conversion rate model generationmodule 132 can be configured to calculate features for every contentpublisher g and third-party content provider a, and produce pairwiselinear regressions for every content publisher-provider pair thatcorresponds to a creative of the third-party content provider receivinga conversion when served on an information resource of the contentpublisher. As described above, the conversion rate model generationmodule 132 can further be configured to determine the existingconversion rates for each content publisher-provider pair and use thedetermined conversion rates to train the linear regression. With thelinear regression fully trained, the conversion rate prediction modelcan be used to predict conversion rates and identify potential pairingsof content publishers and third-party content providers.

In some implementations, the conversion rate model generation module 132can be configured to generate a conversion rate prediction model thatrelies on a nonlinear regression. Nonlinear regression is a form ofregression analysis in which observational data are modeled by afunction which is a nonlinear combination of the model parameters anddepends on one or more independent variables. The data are fitted by amethod of successive approximations.

The conversion rate prediction module 134 can be part of, or can includescripts executed by, one or more servers in the data processing system110. The conversion rate prediction module 134 can be part of the sameor a different server as the content placement management module 130 andthe conversion rate model generation module 132 in the data processingsystem 110. The conversion rate prediction module 134 can be configuredto score existing content publisher-provider pairs based on theirpredicted conversion rates. In addition, the content placementmanagement module 130 can use the predicted conversion rates to provide,to a third-party content provider, an evaluation of the third-partycontent provider's existing pairings with content publishers as well asto identify new content publishers with whom the third-party contentprovider has not yet established a pairing.

In some implementations, the conversion rate prediction model 134 can beused for predicting a conversion rate of a given contentpublisher-provider pair different from the identified plurality ofcontent publisher-provider pairs. In some implementations, theconversion rate prediction model 134 can be configured to receive, froma third-party content provider, a request for a list of contentpublishers having at least one information resource on which to servecreatives. In some implementations, the conversion rate prediction model134 can determine the feature data of the third-party content providerrequesting the list of content publishers. The conversion rateprediction model 134 can then identify a plurality of candidate contentpublishers on which creatives of the third-party content provider can beserved. In some implementations, the conversion rate prediction model134 can identify a plurality of candidate content publishers on whichcreatives of the third-party content provider can be served from a listof content publishers that have authorized the data processing system110 to facilitate the placement of creatives in content slots on behalfof the content publisher. In some implementations, the conversion rateprediction model 134 can first identify all of the content publishersfor which conversion rate data is available. The conversion rateprediction model 134 then determines the feature data of each of theidentified content publishers. The conversion rate prediction model thenprovides the feature data of the identified content publishers and thecontent provider requesting the list to the conversion rate predictionmodel to determine the predicted conversion rates of each of theidentified content publishers. The conversion rate prediction model 134can then rank the content publisher-provider pairings according to theirconversion rate predictions and provide a subset of the contentpublisher-provider pairings to the content provider. In someimplementations, the subset can include a predetermined number ofcontent publisher-provider pairings. In some implementations, thepredetermined number can range anywhere from 1-50 contentpublisher-provider pairings. In some implementations, the subset caninclude any number of content publisher-provider pairings that have apredicted conversion rate above a particular threshold. The thresholdvalue can range anywhere from at least 1% up to 70%.

FIG. 2 is a flow diagram depicting an method 200 of predicting aconversion rate of a content publisher-third-party content providerpair. The method 200, via a processor of a data processing system, suchas the data processing system 100 shown in FIG. 1, can identify, fromlog data, a plurality of content publisher-third-party content providerpairs, each corresponding to a third-party content provider associatedwith at least one creative receiving at least one conversion when servedon one or more information resources of the content publisher (Block205). The method can determine, for each content publisher-providerpair, from the log data, a conversion rate corresponding to a ratio of anumber of conversions associated with the at least one creative to anumber of impressions received by the at least one creative when servedon the one or more information resources of the content publisher (Block210). The method can determine, for each content publisher-providerpair, feature data of the content publisher and feature data of thethird-party content provider (Block 215). The method can alsotransforming the determined feature data of the content publishers andthird-party content providers and the conversion rates of the pluralityof content publisher-provider pairs into a model useful for predicting aconversion rate of a given content publisher-provider pair differentfrom the identified plurality of content publisher-provider pairs (Block220).

In further detail, the method 200 can identify, from log data, aplurality of content publisher-third-party content provider pairs (Block205). In some implementations, each of the plurality of contentpublisher-provider pairs can correspond to a third-party contentprovider associated with at least one creative receiving at least oneconversion when served on one or more information resources of thecontent publisher. In some implementations, the log data includesactivity information relating to one or more creatives provided fordisplay along with primary content on an information resource. The logdata can include a plurality of entries, each of which corresponds toactivity information related to a single impression of a creative. Insome implementations, an entry can include information identifying theinformation resource (for instance, the webpage) and the websiteassociated with the information resource. The entry can also includeinformation identifying a particular third-party content slot in whichthe creative was inserted. In some implementations, the entry canidentify a type of third-party content slot, for instance, if thecontent slot was a leaderboard, skyscraper, or bottom of page contentslot. The entry can also including information identifying thethird-party content provider, for instance, by a domain name of thelanding page associated with the creative. In some implementations, thethird-party content provider can be identified based on the content ofthe creative. In some implementations, the entry can also include a costfor receiving an impression. In some implementations, the cost can becost per thousand impressions (CPM), cost per click, amongst others. Insome implementations, the entry can also include information relating toany activity taken on the creative. For instance, the entry can includeinformation indicating whether the creative was actuated (clicked on,opened, etc.).

In some implementations, the method can maintain the log data of allcreatives served on an information resource of a participating contentpublisher. In some implementations, the method can identify a list ofcontent publishers that participate in direct content placement via acontent placement management system, such as the data processing system110 shown in FIG. 1. The data processing system can facilitate theplacement or insertion of creatives in content slots of informationresources of a content publisher on behalf of the content publisher. Insome implementations, the data processing system may obtain permissionor consent from the content publisher to manage the inventory of contentslots included in information resources of the content publisher. Theinventory of content slots that can be managed by the data processingsystem can be identified by a tag, or other identification mechanism. Inthis way, the content publisher can utilize the data processing systemto facilitate the placement of creatives in content slots tagged oridentified as content slots configured to be managed by the dataprocessing system. Other content slots that may be included in one ormore information resources of the content publisher that are not taggedor otherwise identified may be configured to receive creatives usingother content placement methods. Instances of other content placementmethods include content placement auctions or inserting content throughan existing contractual relationship formed between the content providerand the content publisher, amongst others.

In some implementations, the data processing system can monitor activityat one or more information resources of the content publisher. The dataprocessing system can monitor visits to each information resource. Insome implementations, the data processing system can create entries inresponse to the information resource being provided for display to anend user computing device. Each entry can include information relatingto an end user computing device, such as a location of the computingdevice, a time of access, an amount of time spent on the informationresource, a resource (for instance, webpage, direct visit, creative,search result) through which the end user computing device arrived atthe information resource, and a resource through which the end usercomputing device exited the information resource, amongst others.

The method can determine, from the log data, a conversion rate for eachcontent publisher-third-party content provider pair (Block 210). In someimplementations, the conversion rate for a content publisher-third-partycontent provider pair can be a click through rate. In someimplementations, the click-through rate can be determined by calculatinga ratio of a number of clicks on one or more creatives of thethird-party content provider provided for display on an informationresource of the content publisher to a total number of impressionsreceived by the one or more creatives of the third-party contentprovider provided for display on the resource of the content publisher.In some implementations, to determine the conversion rate, the methodcan determine, from the log data, a total number of impressions receivedby creatives of the third-party content provider served on one or moreinformation resources of the content publisher. In some implementations,the method can first identify all entries included in the log data inwhich any creative of the third-party content provider received animpression when served on any information resource of the contentpublisher. The method can determine a total number of conversionsreceived by the creative of the third-party content provider when servedon any information resource of the content publisher. The method canthen determine a ratio of the total number of conversions to the totalnumber of impressions. In some implementations, the conversions can beidentified as click throughs. In some implementations, a conversion canbe identified as a purchase, subscribing to an email list, or taking aspecified action, amongst others.

The method can determine, for each content publisher-third-party contentprovider pair, feature data of the content publisher and feature data ofthe third-party content provider (Block 215). In some implementations,the method includes determining feature data of the content publisherand the third-party content provider based on one or more of topics ofcontent included in the information resources of the content publisherand resources of the third-party content provider. In someimplementations, the method can determine the feature data of aninformation resource of the content publisher using the content includedin the information resource. In some implementations, the method candetermine the feature data using clustering. In some implementations,the method can determine the feature data using other well-known methodsfor feature data determination. For instance, the feature data can bebased on the geo-locality of the end user computing devices accessingthe information resource In some implementations, the feature data canbe based on a language in which h the content of the informationresource is published.

In some implementations, the method can determine the feature data ofthe content publisher by determining one or more feature vectors for thecontent publisher having multiple dimensions. In some implementations,each of the dimensions can correspond to different features of thecontent publisher. Similarly, in some implementations, the method candetermine the feature data of the third-party content provider bydetermining one or more feature vectors for the third-party contentprovider having multiple dimensions. In some implementations, each ofthe dimensions can correspond to different features of the third-partycontent provider.

The method can also generate a model for predicting a conversion rate ofa given content publisher-third-party content provider pair using thedetermined feature data of the content publisher, the determined featuredata of the third-party content provider and the determined conversionrates of the plurality of content publisher-third-party content providerpairs (Block 220).

In some implementations, the method can identify a candidate contentpublisher-third-party content provider pair different from theidentified plurality of content publisher-third-party content providerpairs. The method can identify a candidate content publisher-third-partycontent provider pair responsive to a request from a third-party contentprovider to identify potential content publishers on whose informationresources the third-party content provider can provide creatives toserve. Conversely, The method can identify a candidate contentpublisher-third-party content provider pair responsive to a request froma content publisher to identify potential third-party content providershaving a predicted conversion rate above a threshold predictedconversion rate. In some implementations, the threshold predictedconversion rate may be based on a current conversion rates of theprovider-publisher pairings of which the third-party content provider isa part.

In some implementations, the method can receive, from a third-partycontent provider, a request for a list of content publishers having atleast one resource on which to serve creatives. In some implementations,the method can further determine feature data of the third-party contentprovider requesting the list of content publishers. The method can thenidentify a plurality of candidate content publishers on which creativesof the third-party content provider can be served. In someimplementations, the method can identify a plurality of candidatecontent publishers on which creatives of the third-party contentprovider can be served from a list of content publishers that haveauthorized the method to facilitate the placement of creatives incontent slots on behalf of the content publisher.

The method can then determine feature data of the identified pluralityof content publishers and determine, using the generated model, for eachof the plurality of candidate content publishers and the third-partycontent provider associated with the request, a predicted conversionrate of the content publisher-third-party content provider pair based onthe feature data of the candidate content publisher and feature data ofthe third-party content provider.

The method can provide, to the third-party content provider requestingthe list of content publishers, the list of content publishers having atleast one information resource including a content slot in which toserve creatives. The list can include the plurality of candidate contentpublishers and the determined predicted conversion rate of the contentpublisher-third-party content provider pair.

In some implementations, the method can receive, from a contentpublisher, a request for a list of third-party content providers havingat least one creative to serve on a resource of the content publisher.The method can then determine feature data of the content publisher. Themethod can identify a plurality of candidate third-party contentproviders having at least one creative to serve on a resource of thecontent publisher. The method can determine feature data of theidentified plurality of candidate third-party content providers. Themethod can determine, using the generated model, for each of theplurality of candidate third-party content providers and the contentpublisher associated with the request, a predicted conversion rate ofthe content publisher-third-party content provider pair based on thefeature data of the candidate content publisher and feature data of thethird-party content provider.

The method can provide, to the content publisher, the list ofthird-party content providers having at least one creative to serve on aresource of the content publisher. The list can include the plurality ofcandidate third-party content providers and the determined predictedconversion rate of the content publisher-third-party content providerpair.

B. Reserving Content Slots of an Information Resource of a ContentPublisher

FIG. 3 illustrates an system 300 for reserving a content slot of aninformation resource of a content provider via at least one computernetwork, such as the network 105. The system 300 can include one or morecomponents of the system 100 shown in FIG. 1. The system 300 includesthe data processing system 110 shown in FIG. 1, but includes additionalmodules configured to reserve a content slot of an information resourceof a content provider.

The data processing system 110 can include a solicitation module 330, areservation interface module 332 and a creative placement module 334.The data processing system 110 can be configured to receive, in responseto an action taken on an actionable solicitation object (for instance, alink, icon, button, creative) included within an information resource ofa content publisher, a request to receive information for inserting acreative within one or more third-party content slots available on theinformation resource in accordance with a direct content placementcampaign. In a direct content placement campaign, a third-party contentprovider can reserve at least one content slot of an informationresource of a content publisher to insert a creative according to areservation policy. The reservation policy can include one or more rulesoutlining a schedule according to which the creative can be inserted inthe content slot. The data processing system 110 can be configured toprovide, for display, an interface that includes the informationregarding reserving at least one content slot. Stated in another way,the information can be related to inserting the creative within one ormore third-party content slots on the information resource of thecontent publisher. The data processing system 110 can be configured toreceive, via the interface, a request to insert, according to areservation policy, a creative within a particular third-party contentslot of the plurality of third-party content slots when the informationresource on which the particular third-party content slot is located isserved. The data processing system 110 can be configured to store dataassociated with the request to insert the creative within the particularthird-party content slot. The stored data can be useful to provide, fordisplay, the creative within the particular third-party content slot ofthe information resource when the information resource is served inaccordance with the reservation policy.

The solicitation module 330 can be part of, or can include scriptsexecuted by, one or more servers in the data processing system 110. Insome implementations, the solicitation module 330 can be configured tosolicit third-party content providers to reserve one or more contentslots of an information resource to insert creatives when theinformation resource is served. The solicitation module 330 can beconfigured to identify a content publisher that has indicated aninterest in utilizing the data processing system 110 to providecreatives for insertion in one or more content slots of the informationresources of the content publisher via a direct content placementcampaign of a content provider. In some implementations, thesolicitation module 330 can identify a content publisher in response toreceiving a request from the content publisher to utilize one or morecontent slots for serving creatives of content providers participatingin direct content placement campaigns. In some implementations, thesolicitation module 330 can identify a content publisher based on ananalysis of traffic related information associated with the contentpublisher. For instance, content publishers that satisfy a minimumtraffic metric threshold may be identified as candidate contentpublishers that may be eligible or willing to participate in providingcontent slots for serving creatives of content providers participatingin direct content placement campaigns. Instances of traffic metricsinclude an average daily number of visits, an average number of uniquevisitors, or any other metric that provides an indication of apopularity of an information resource. In addition, the solicitationmodule 330 can receive information relating to creatives served incontent slots of the information resources, including but not limited tothe identity of the creatives served, the third-party content providersassociated with the creatives, the number of clicks received by thecreatives, the number of conversions received by the creatives, amongstothers. In some implementations, the solicitation module 330 can beconfigured to allow content publishers participating in a contentplacement service to opt-in to participate in providing content slotsfor serving creatives of content providers participating in directcontent placement campaigns.

The solicitation module 330 can be configured to provide, on aninformation resource of a content publisher, a solicitation objectthrough which a potential third-party content provider accessing theinformation resource, can actuate the solicitation object to participatein a direct content placement campaign that involves serving creativeson the information resource on which the solicitation object wasprovided. The solicitation object can be an actionable object, such as alink, an icon, a button, or any other object that a potential contentprovider can actuate.

In some implementations, the solicitation module 330 can provide thesolicitation object within a solicitation creative that is served withina content slot of the information resource. In some implementations, thesolicitation creative can be generated using traffic metrics associatedwith the information resource. In some implementations, the solicitationobject can be provided for display within an area of the informationresource where primary content is displayed.

The solicitation module 330 can provide the solicitation object on aninformation resource of a content publisher that has opted in toparticipate in providing content slots for serving creatives of contentproviders participating in direct content placement campaigns. In someimplementations, for the information resource to be able to display thesolicitation object, the solicitation module 330 can be configured toembed a script in the information resource of the content publisher. Insome implementations, the solicitation module 330 can provide the scriptto the content publisher, who can insert the script in the informationresource. In some implementations, the script can be configured toenable the data processing system 110 to retrieve information related tothe one or more information resources of the content publisher. Forinstance, the script can be configured to allow the solicitation module330 to receive traffic related statistics of the content publisher. Insome implementations, the solicitation module can be configured tomaintain log data relating to each visit to the information resources ofthe content publisher. In this way, the solicitation module 330 can beconfigured to create a data log based on visits to the informationresources by end user computing devices and determine traffic metrics,such as an average daily number of visits, an average number of dailyunique visitors, types of visitors visiting the site, amongst others. Insome implementations, the script can be a snippet of code. In someimplementations, the snippet of code is a JavaScript object.

In some implementations, the script of the solicitation module 330 canbe configured to allow the solicitation module 330 to managereservations for one or more content slots of the information resource.In some implementations, the solicitation module can, via the executionof the script, identify one or more content slots. The solicitationmodule 330 can identify content slots by parsing the contents or sourcecode of the information resource. In some implementations, thesolicitation module 330 can receive a request from the content publisheridentifying particular content slots included in the informationresources of the content publisher that the content publisher would likethe solicitation module 330 to manage reservations. In someimplementations, the request can include a request to manage thereservations of all of the content slots of all the informationresources of the content publisher. In some implementations, the requestcan include a request to manage the reservations of all of the contentslots of a particular information resource of the content publisher. Insome implementations, the request can identify the content slots thatthe content publisher would like the data processing system 110 tomanage. In some implementations, the content publisher can submit therequest via a content slot management interface. In someimplementations, the content publisher can select, via the userinterface, one or more content slots to be managed by the dataprocessing system 110.

The solicitation module 330 can, via the execution of the script,identify one or more of the identified content slots to be managed bythe solicitation module 330. The solicitation module can identify theone or more of the identified content slots to be managed by thesolicitation module 330 in response to receiving a request from thecontent publisher indicating the content slots to manage. In someimplementations, the content publisher can identify one or more contentslots by identifying any tags associated with the content slots. In someimplementations, the content publisher may request the solicitationmodule 330 to manage all content slots that are tagged to requestcreatives from the data processing system 110. In some implementations,the solicitation module 330 may be configured to tag or otherwiseidentify content slots for which the content publisher would like thesolicitation module 330 to manage reservations. In some implementations,the solicitation module 330 can tag or otherwise mark or identify thecontent slots to be managed by the solicitation module 330.

The solicitation module 330 can, via the execution of the script, thencreate reservation schedules for each of the content slots identify ascontent slots to be managed by the solicitation module 330. Thereservation schedule of a content slot is a schedule indicating theavailability of the content slot. When a content slot is reserved for agiven period of time, the reservation schedule is updated to indicatethat the content slot is reserved for the given period of time. In thisway, third-party content providers interested in reserving the contentslot are only able to reserve time slots during which the reservationschedule of the content slot indicates that the content slot isavailable.

In some implementations, the solicitation module 330 can be configuredto analyze the information resources of the content publisher andidentify all content slots configured to serve third-party contentitems. The solicitation module 330 can further be configured to tag,label, or otherwise modify the identified content slots such that thesolicitation module 330 can be configured to manage the reservation ofthe content slots, while also being able to manage the content capableof being inserted in the identified content slots. In someimplementations, the solicitation module 330 can modify the contentslots such that only the data processing system 110 can provide contentfor insertion in the content slots when rendered on an end usercomputing device, such as the end user computing device 125.

Referring briefly to FIG. 4, FIG. 4 is a display depicting aninformation resource, according to an illustrative implementation. Theinformation resource 400 can be associated with or hosted by the contentpublisher computing device 120 and displayed by the content providercomputing device 115 or by the end user computing device 125. Forinstance, the content publisher computing device 120 can include a webserver that hosts the information resource 400 (e.g., a web page). Theinformation resource 400 can include first party content in at least onecontent publisher content area 405. Subject matter created by orassociated with the host (or content publisher) of the web page can bedisplayed in the content area 405. For instance, the informationresource 400 may include a video hosted by the content publishercomputing device 120. A primary content provider (e.g., the entity whoprovided the video) can provide primary content for display as contentin the content publisher content area 405.

The information resource 400 can also include at least one content slot410A-410C (generally content slot 410). The content slots 410 caninclude areas of the information resource 400 configured for display ofthird party content, such as content items or creatives 412A-412C(generally creatives 412). In some implementations, one or more of thecontent slots 410 can be configured to include a creative that serves asa solicitation creative 412C. The solicitation creative 412C can solicitoffers for third party content providers to advertise on the informationresource 400. For instance, the solicitation creative 412C can include adisplay to the effect of “advertise here” or “your ad here” to alertcontent providers of the opportunity to provide their content items fordisplay in the content item slots 410 of the information resource 400.As shown in FIG. 4, the solicitation creative 412C can be insertedwithin a content slot, such as the content item slot 410C. For instance,the data processing system 110 can provide the solicitation creative412C for display in a content item slot 410. The solicitation creative412C can include a solicitation object 416. The solicitation object 416can be an actionable object on which an action can be taken. Instancesof actions can include clicks, hover over, amongst others. Thesolicitation object 416 can be configured such that when an action istaken on the solicitation object 416, the data processing systemreceives a request to provide information for serving creatives in theone or more content slots 410.

The solicitation object 416 can include a button, link or otherinterface that, when actuated by a click or other input into the contentprovider computing device 115 where the information resource 400 isdisplayed causes transmission of a communication via the network 105 tothe data processing system 110. This communication can indicate arequest from the content provider computing device 115 to initiate adirect content item placement campaign to provide associated creativesfor display in one or more content slots 410 of the information resource400, or a request to preview what creatives associated with the contentprovider computing device 115 look like when displayed in the contentslots 410 of that information resource 400. Thus, the content providercomputing device 115 can browse information resources 400 available viathe network 105 and can select specific information resources 400 ascandidates for a direct content item placement campaign. This renderingor impression of the information resource 400 at the content providercomputing device 115 can include creatives such as ads displayed in thecontent slots 410.

The layout, look, feel, or configuration of the information resources400 can vary, and the information resource can include web pages,application displays, or other online documents configured for displayon various end user computing devices 125 such as desktop computers,smartphones, or tablet computers. The information resource 400, contentpublisher content areas 405, content slots 410, and solicitationcreatives 416 need not have the number, shape, layout or configurationas in FIG. 4. For instance, the content slots 410 can appear within thecontent publisher content area 405, or in the top, bottom, or sidemargins of the information resource 400, and the content slots 410 neednot be square or quadrilateral.

Referring again to FIG. 3, the data processing system 110 includes thereservation interface module 332. The reservation interface module 332can be part of, or can include scripts executed by, one or more serversin the data processing system 110. In some implementations, thereservation interface module 332 can be configured to provide, fordisplay, a reservation interface through which a third-party contentprovider can reserve one or more content slots of information resourcesof a content publisher. The reservation interface module 332 can beconfigured to provide the reservation interface for display responsiveto receiving a request to receive information for inserting a creativewithin one or more third-party content slots available on theinformation resource. In some implementations, the reservation interfacemodule 332 can be configured to provide the reservation interface to athird-party content provider in response to the third-party contentprovider taking an action on an solicitation object provided for displayon an information resource of the content publisher. For instance, thereservation interface module 332 may provide the reservation interfaceto a third-party content provider in response to the third-party contentprovider clicking on the solicitation object 416 provided for display onthe information resource 400 shown in FIG. 4.

In some implementations, the reservation interface can be provided on oras an information resource of the data processing system 110. Thereservation interface can be configured to allow a third-party contentprovider to reserve one or more content slots of one or more informationresources of a content publisher. The reservation interface can beconfigured to provide information that a third-party content providercan benefit from when determining whether to reserve one or more contentslots of an information resource.

The information can identify a plurality of third-party content slots ofone or more information resources of the content publisher. In addition,the information can include visitor traffic-related information that maybe useful to the third-party content provider when deciding whether toreserve one or more third-party content slots on one or more informationresources of the content publisher. This visitor traffic-relatedinformation can include information about the number of visitorsvisiting one or more information resources of the content publisher, thetypes of visitors, the various types of content slots on the one or moreinformation resources available to be reserved, the cost to reserve oneor more of the content slots, amongst others. In some implementations,the reservation interface module 332 can receive the traffic-relatedinformation from the activity log data maintained by the data processingsystem 110 for the information resource of the content publisher. Asdescribed above, a script provided by the solicitation module 330 andincluded within the information resources of the content publisher mayenable the data processing system 110 to receive activity dataassociated with visitor activity at the information resource andmaintain logs of the activity data. In some implementations, thereservation interface module 332 can be configured to determinetraffic-related information or statistics from the traffic relatedinformation and provide the information for display on the reservationinterface.

In addition to the visitor traffic-related information, the reservationinterface can include a visual representation of the informationresource. The visual representation of the information resource caninclude one or more visual indicators identifying the content slots onthe information resource. In this way, the third-party content providercan be made aware of where a creative will appear when served on theinformation resource. In some implementations, the interface can beconfigured such that when an object on the interface is hovered over, avisual indicator located on, near or around the content slot on thevisual representation of the information resource corresponding to theobject is actuated.

In some implementations, the reservation interface module 332 can alsobe configured to determine the cost for reserving each of the contentslots associated with the content publisher that are available forreservation. In some implementations, the reservation interface module332 can receive the cost for reserving a content slot from the contentpublisher. In some implementations, the reservation interface module 332can determine the cost for reserving a content slot based on thetraffic-related information associated with the information resourcesand the content slots themselves, including the size of the contentslot, the daily number of impressions and a number of conversions,amongst others. In some implementations, the cost can be based on supplyand demand. For instance, based on a number of available dates, thereservation interface module 332 can determine a level of demand for thecontent slot and set a cost accordingly. In some implementations, thereservation interface module 332 can look at historical reservations todetermine how much content providers are willing to pay. In someimplementations, the reservation interface module 332 can identify thecost of other content publishers having similar traffic relatedstatistics or include content related to similar topics to determine acost for the content slots. In some implementations, the reservationinterface module 332 may be configured to determine a cost based on theavailable inventory of content slots of similar sites.

The reservation interface module 332 can be configured to determineseparate costs for reserving each of the content slots. The cost of acontent slot can be dictated in part by location of the content slot,the size of the content slot, the type of creative being inserted (forinstance, creatives including video, creatives including audio, creativewith content extensions) in addition to the content publisher associatedwith the information resource on which the content slot is inserted.

In some implementations, the reservation interface module 332 can alsobe configured to determine the cost to reserve a content slot based onan availability of the content slot. For instance, a content slot thatis available for one day can be priced differently than a content slotthat is available for a longer period of time. Moreover, the cost toreserve a content slot can vary based on the day of the week, the timeof the year, the season, amongst others. Generally, the reservationinterface module 332 can determine the cost to reserve a content slotbased on an anticipated number of views to be received during aparticular reservation period.

The reservation interface module 332 can be configured to receive, froma third-party content provider, a request to reserve a particularcontent slot identified on the reservation interface. Stated in anotherway, the request to reserve a particular content slot can be a requestto insert one or more creatives within a particular third-party contentslot of the plurality of third-party content slots when serving aninformation resource on which the content slot according to areservation policy. The request can identify the one or more creativesto insert within the content slot being reserved. The reservation policycan identify one or more rules according to which the one or morecreatives are to be provided for display within the third-party contentslot of the information resource when the information resource isserved. For instance, the reservation policy can include a reservationschedule that identifies a time period over which to reserve theparticular content slot. In some implementations, the third-partycontent provider can select the time period via a calendar object. Insome implementations, the granularity of the reservation schedule canrange from a minute, an hour, a day, a week, or even longer. Inaddition, the third-party content provider can include one or morecreatives in the request to reserve a particular content slot. In someimplementations, the reservation interface module 332 can be configuredto allow the third-party content provider to identify a percentage ofimpressions that each of the creatives should receive. In someimplementations, the reservation interface module 332 can be configuredto allow the third-party content provider to indicate in the requestthat a first creative is to receive 50% of the impressions, the secondcreative is to receive 30% of the impressions and the third creative isto receive 20% of the impressions. The reservation interface module 332can receive such requests, identify one or more content servingrestrictions and create one or more rules which form the reservationpolicy according to which the creatives are inserted in the contentslot.

The reservation interface module 332, in response to receiving therequest to reserve a particular content slot, can provide a payment formto the third-party content publisher. In some implementations, thethird-party content publisher can have an account with the dataprocessing system 110 and therefore, payments may be automaticallyprocessed once a request to reserve a particular content slot isreceived. The reservation interface module 332 can receive paymentdetails from the third-party content provider and process the request toinsert the creative within the particular third-party content slotaccording to the reservation policy associated with the request.

The reservation interface module 332 can be configured to store dataassociated with the request to insert the creative within the particularthird-party content slot. The stored data can be useful to provide, fordisplay, the creative within the particular third-party content slot ofthe information resource according to the reservation policy. In someimplementations, the reservation interface module 332 can store the datain a database, such as the database 140.

Referring briefly to FIG. 5A, FIG. 5A is a screenshot of an interfacefor reserving a content slot of the information resource shown in FIG.4. The screenshot depicts a reservation interface 500 that can berendered for display by the content provider computing device 115 duringcreation of a direct content item placement campaign. The reservationinterface 500 can be a part of an information resource and can beconfigured to enable the reservation of content slots on informationresources of a content publisher, such as the content publisherexample.org. In some implementations, the reservation interface can beprovided for display responsive to an action being taken on asolicitation object, such as the solicitation object 416 shown in FIG.4.

The reservation interface 500 can include a list of content slot objects530A-530C providing information corresponding to content slots availableto be reserved on the information resource on which the solicitationobject on which an action was taken was displayed, a list of the topperforming content slots that are a part of any information resource ofthe content publisher, and a preview of the information resource onwhich the solicitation object on which an action was taken. The preview505 is a preview of the user interface 400 shown in FIG. 4 but ismodified to include actionable objects 512A-512C inserted as overlayswithin the content slots 510A-510C. The content slot 510C, whichpreviously contained a solicitation creative 412C shown in FIG. 4 canalso be reserved via the actionable object 512C.

The list of content slot objects 530A-530C correspond to the contentslots 510A-510C shown in the preview 505. Each of the content slotobjects 530A-530C can include an average number of page views per day, acontent slot size, a daily cost for reserving the content slot, as wellas an actionable object through which the content slot can be reserved.The list of content slot objects 540A-540C correspond to the topperforming content slots of information resources of the contentpublisher.

Referring now also to FIG. 5B, FIG. 5B is a screenshot of thereservation interface for reserving a content slot of the informationresource shown in FIG. 4. The screenshot of the reservation interface550 can be provided for display responsive to a request, from thecontent publisher, to reserve a content slot. In some implementations,the reservation interface 550 can be provided for display upon athird-party content provider taking an action on an actionable object,such as the actionable objects 512A-512C or the actionable objectsincluded in the content slot objects 530A-530C and 540A-540C. As shownin FIG. 5B, the reservation interface 550 provides a visual indication552 indicating that the content slot being reserved is the “leaderboard”content slot, which corresponds to the content slot 510A.

The reservation interface 550 includes a calendar object 560 that isconfigured to indicate the dates the content slot is available to bereserved as well as the dates on which the content slot is unavailableto be reserved. In addition, the reservation interface indicates a cost572 for reserving the content slot, a range of daily impressions 574, acontent slot size 576 and one or more topics 578 with which theinformation resource of which the content slot is a part. In addition,the reservation interface 550 includes a chart 580 indicating apercentage of visitors arranged by information associated with visitors.A third-party content provider can select one or more dates over whichto reserve the content slot by selecting dates within the calendarobject 560. Once the dates are selected, the third-party contentprovider can select an actionable object 582, which causes thereservation interface to proceed with reserving the content slot basedon the selected dates. In some implementations, a payment interface or aconfirmation of the reservation is provided for display responsive tothe actionable object 582 being selected by the third-party contentprovider.

Referring again to FIG. 3, the creative placement module 334 of the dataprocessing system 110 can be part of, or can include scripts executedby, one or more servers in the data processing system 110. In someimplementations, the creative placement module 334 can be configured toprovide, for display, the creative within the particular third-partycontent slot of the information resource according to the reservationpolicy. In some implementations, the creative placement module 334 canbe configured to receive a request to serve a creative for a contentslot of an information resource. The request to serve an informationresource can be generated in response to an end-user computing devicerequesting to view the information resource. In some implementations,the indication received by the creative placement module 334 canidentify the content slot for which to serve a creative. In someimplementations, the creative placement module 334 can perform a lookupin the database for the content slot and identify a reservationassociated with the content slot for the time at which the request toserve a creative for a content slot of an information resource isreceived by the creative placement module 334. The creative placementmodule 334 can be configured to identify a reservation policy associatedwith the identified reservation. The creative placement module 334 canthen provide a creative to insert in the content slot when theinformation resource is served. The creative that is provided forinsertion can be a creative provided by the third-party content providerthat requested the reservation of the content slot.

FIG. 6 is a flow diagram depicting an method of reserving a particularthird-party content slot of an information resource of a contentpublisher, according to an illustrative implementation. The method 600,via a processor of a data processing system, such as the data processingsystem 300 shown in FIG. 3, can receive a request to receive informationfor inserting a creative within one or more third-party content slotsavailable on the information resource (Block 605). The method canprovide, for display, an interface that includes the informationregarding inserting the creative within one or more third-party contentslots on the information resource of the content publisher (Block 610).The method can then receive, via the interface, a request to insert acreative within a particular third-party content slot of the pluralityof third-party content slots according to a reservation policy (Block615). The method can store data associated with the request to insertthe creative within the particular third-party content slot (Block 620).

In further detail, the method can receive a request to receiveinformation for inserting a creative within one or more third-partycontent slots available on an information resource of a contentpublisher (Block 605). In some implementations, the method can receivethe request in response to an action taken on an object included withinan information resource of a content publisher. In some implementations,the action can be taken on a solicitation object located on aninformation resource of a content publisher. In some implementations,the action can be taken by a potential third-party content provider thatmay have an interest in inserting creatives in content slots when theinformation resource is served to end user computing devices. Therequest can identify the information resource associated with thecontent slots within which to insert creatives. In some implementations,the request can also identify the content provider seeking theinformation for inserting a creative.

In some implementations, the method can identify a content publisherthat has indicated an interest in utilizing a content placement systemto provide creatives for insertion in one or more content slots of theinformation resources of the content publisher. In some implementations,the method can identify a content publisher in response to receiving arequest from the content publisher to utilize one or more content slotsfor serving creatives of content providers participating in directcontent placement campaigns. In some implementations, the method canidentify a content publisher based on an analysis of traffic relatedinformation associated with the content publisher. For instance, contentpublishers that satisfy a minimum traffic metric threshold may beidentified as candidate content publishers that may be eligible orwilling to participate in providing content slots for serving creativesof content providers participating in direct content placementcampaigns. In some implementations, the method can allow contentpublishers participating in a content placement service to opt-in toparticipate in providing content slots for serving creatives of contentproviders participating in direct content placement campaigns. In someimplementations, the method can receive, from a content publisher, arequest to manage third-party content slot reservations. In someimplementations, the method can then provide, to the content publisher,an object for insertion into a source code of the information resourceof the content publisher.

The method can provide, on an information resource of a contentpublisher, a solicitation object through which a potential third-partycontent provider accessing the information resource, can actuate thesolicitation object to participate in a direct content placementcampaign that involves serving creatives on the information resource onwhich the solicitation object was provided. The solicitation object canbe an actionable object, such as a link, an icon, a button, or any otherobject that a potential content provider can actuate. In someimplementations, the solicitation object can be provided within asolicitation creative that is served within a content slot of theinformation resource. In some implementations, the solicitation creativecan be generated using traffic metrics associated with the informationresource. In some implementations, the solicitation object can beprovided for display within an area of the information resource whereprimary content is displayed.

The method can provide the solicitation object on an informationresource of a content publisher that has opted in to participate inproviding content slots for serving creatives of content providersparticipating in direct content placement campaigns. In someimplementations, for the information resource to be able to display thesolicitation object, the method can be configured to embed or insert ascript in the information resource of the content publisher. In someimplementations, the method can provide the script to the contentpublisher, who can insert the script in the information resource. Insome implementations, the script can be configured to enable theretrieval of information related to the one or more informationresources of the content publisher. For instance, the script can beconfigured to allow for receiving traffic related statistics of thecontent publisher.

In some implementations, the method can maintain log data relating toeach visit to the information resources of the content publisher. Inthis way, the method can create a data log based on visits to theinformation resources by end user computing devices and determinetraffic metrics, such as an average daily number of visits, an averagenumber of daily unique visitors, types of visitors visiting the site,amongst others. In some implementations, the method can receive ordetermine, from log data, statistics pertaining to the informationresource. The statistics can include one or more of an average number ofdaily impressions, one of a size of the third-party content slot and asize of a creative that can be inserted within the third-party contentslot, and one or more topics with which the information resource isassociated.

The method can provide, for display, a reservation interface thatincludes the information regarding inserting the creative within one ormore third-party content slots on the information resource of thecontent publisher (Block 610). In some implementations, the informationcan identify a plurality of third-party content slots associated withthe content publisher and costs associated with reserving the contentslots for inserting the creative within each of the plurality ofthird-party content slots. In some implementations, the reservationinterface can include information pertaining to third-party contentslots included within the information resource of the content publisheras well as information pertaining to third-party content slots includedwithin any information resource associated with the information resourceof the content publisher. In some implementations, the reservationinterface can include a preview of the information resource of thecontent publisher. In some implementations, the preview of theinformation resource can insert actionable objects within thethird-party content slots in which creatives can be inserted. In someimplementations, each of the actionable objects within the third-partycontent slots can be linked with a reservation page through which thethird-party content slot within which the actionable object is insertedcan be reserved.

In some implementations, the method can determine a cost associated withinserting the creative within the third-party content slot according tothe reservation policy. The method can then provide, for display, thedetermined cost associated with inserting the creative within thethird-party content slot according to the reservation policy. In someimplementations, the determined cost can be provided for display as acost to reserve the content slot for a predetermined time period, forinstance, an hour, a day, a week, amongst others. In someimplementations, the method can provide a plurality of costs for displaycorresponding to various lengths of time.

The method can then receive, via the interface, a request to insert oneor more creatives within a particular third-party content slot of theplurality of third-party content slots according to a reservation policy(Block 615). In some implementations, the request can identify the oneor more creatives to insert in the particular third-party content slot.In some implementations, the reservation policy can identify one or morerules according to which the creatives are to be provided for displaywithin the third-party content slot of the information resource when theinformation resource is served.

In some implementations, the method can, via the execution of thescript, create reservation schedules for each of the content slotsidentify as content slots to be managed by the solicitation module. Thereservation schedule of a content slot is a schedule indicating theavailability of the content slot. When a content slot is reserved for agiven period of time, the reservation schedule is updated to indicatethat the content slot is reserved for the given period of time. In thisway, third-party content providers interested in reserving the contentslot are only able to reserve time slots during which the reservationschedule of the content slot indicates that the content slot isavailable.

In some implementations, the method can analyze the informationresources of the content publisher and identify all content slotsconfigured to serve third-party content items. The method can tag,label, or otherwise modify the identified content slots such that thesolicitation module can be configured to manage the reservation of thecontent slots, while also being able to manage the content capable ofbeing inserted in the identified content slots. In some implementations,the method can modify the content slots such that only the dataprocessing system can provide content for insertion in the content slotswhen rendered on an end user computing device, such as the end usercomputing device.

The method can store data associated with the request to insert thecreative within the particular third-party content slot (Block 620). Thestored data can be used to provide, for display, the creative within theparticular third-party content slot of the information resourceaccording to the reservation policy.

In some implementations, the method can provide, for display, thecreative within the particular third-party content slot of theinformation resource according to the reservation policy. In someimplementations, the method can receive a request to serve a creativefor a content slot of an information resource. The request to serve aninformation resource can be generated in response to an end-usercomputing device requesting to view the information resource. In someimplementations, the indication received by the method can identify thecontent slot for which to serve a creative. In some implementations, themethod can perform a lookup in the database for the content slot andidentify a reservation associated with the content slot for the time atwhich the request to serve a creative for a content slot of aninformation resource is received by the method. The method can identifya reservation policy associated with the identified reservation. Themethod can then provide a creative to insert in the content slot whenthe information resource is served. The creative that is provided forinsertion can be a creative provided by the third-party content providerthat requested the reservation of the content slot.

C. Providing Actionable Reservation Objects within a Content Slot of anInformation Resource of a Content Publisher

FIG. 7 illustrates an system 700 for providing an actionable reservationobject within a third-party content slot of an information resource of apublisher via at least one computer network, such as the network 105.The system 700 can include one or more components of the system 100shown in FIG. 1 and the system 300 shown in FIG. 3. The system 700includes the data processing system 110 shown in FIG. 1, but includesadditional modules configured to provide an actionable object within athird-party content slot of an information resource of a publisher.

The data processing system 110 can include an actionable object module730, a content slot insertion module 732 and the reservation interfacemodule 332 (described above with respect to FIG. 3 and Section B ingeneral). The data processing system 110 can be configured to receive anindication of interest in providing, for display, a creative within atleast one third-party content slot of an information resource of acontent publisher. The information resource includes one or morethird-party content slots available to be reserved to serve creatives.The data processor can identify at least one third-party content slotincluded in the information resource available to be reserved to serveone or more creatives. The data processor can insert an actionableobject within the identified third-party content slot. The actionableobject can be configured to generate a request to provide an interfacefor reserving the identified third-party content slot to display thecreative responsive to an action being taken on the actionable object.The data processor can then render the information resource includingthe inserted actionable object within the identified third-party contentslot.

The actionable object module 730 can be part of, or can include scriptsexecuted by, one or more servers in the data processing system 110. Insome implementations, the actionable object module 730 can be configuredto identify one or more content publishers that may be interested inparticipating in direct content placement campaigns. As described above,in a direct content placement campaign, a content provider can reserve acontent slot of an information resource of a content publisher such thateach time the information resource is served, a creative of the contentprovider is provided for display within the content slot of theinformation resource. In some implementations, the actionable objectmodule 730 can identify such content providers by crawling the Internetto identify websites that meet threshold traffic-related metrics. Thetraffic-related metrics can be average daily visitors, average dailyimpressions, average daily revenue through content placement, amongstothers. In some implementations, the traffic-related metrics of contentpublishers and of particular information resources (for instance, webpages) of content publishers can be determined from existingapplications that monitor and publish traffic at various contentpublishers.

In some implementations, the actionable object module 730 can beconfigured to identify one or more content publishers that may beinterested in participating in direct content placement campaigns byidentifying content publishers that are currently serving creatives ontheir information resources. In some implementations, the contentpublishers may serve creatives via an advertising auction system or viasome other direct content placement campaign. In some implementations,the actionable object module 730 can be configured to identify contentpublishers that have information resources that are currently receivingcreatives from the data processing system 110, for instance, via anadvertising auction system.

The actionable object module 730 can be configured to provide contentpublishers that may be interested in participating in direct contentplacement campaigns information for participating in direct contentplacement campaigns. In some implementations, the actionable objectmodule 730 can do so by direct marketing to content publishers, forinstance, via email, banner ads, or other forms of marketing.

The actionable object module 730 can be configured to receive anindication of interest in providing, for display, a creative within atleast one third-party content slot of an information resource of acontent publisher. In some implementations, the actionable object module730 may receive the request to receive an indication of interest from acontent publisher. In some implementations, the actionable object module730 may receive the request to receive an indication of interest from acontent publisher the via an interface through which a content providercan communicate with the data processing system 110. In someimplementations, the content provider can have an existing relationshipwith the data processing system 110. In some implementations, thecontent provider can include information resources that have contentslots configured to receive creatives from one or more modules of thedata processing system 110. In some implementations, the content slotscan be configured to receive creatives that are selected by anadvertising auction system. In some implementations, the contentpublisher, may, via the interface, provide an indication of interest byselecting a user input object provided on the interface. In someimplementations, the content publisher may provide the indication ofinterest responsive to a marketing effort of the actionable objectmodule 730 or the data processing system 110 in general.

The actionable object module 730 can be configured to configure one ormore information resources of a content publisher to include anactionable view-changing object. In some implementations, the actionableobject module 730 can provide, to a content publisher, a softwareconstruct, such as a script, code, or other software instructions, thatwhen inserted in an information resource of the content publisher, cancause an actionable view-changing object to appear on the informationresource when the information resource is served. In someimplementations, the actionable object module 730 can automaticallyconfigure one or more information resources of a content publisher toinclude an actionable object by providing a creative that includes theactionable view-changing object for insertion into a content slot of theinformation resources. In some implementations, the content slot inwhich the creative that includes the actionable view-changing object isinserted can be configured to receive creatives provided by theactionable object module 730 or the data processing system 110. In someimplementations in which the actionable view-changing object is providedfor display on an area of the information resource that is outside acontent slot, source code of the information resource may be modified toinclude the software construct. In some implementations, the actionableobject module 730 may modify the source code of the information resourceor the content publisher may modify the source code. In someimplementations, the view-changing actionable object can be configuredto cause the data processing system 110 to render the informationresource such that actionable reservation objects are inserted withinthe identified third-party content slot. Additional details regardingreservation objects are provided below. FIG. 8A shows a screenshot of aninformation resource with an actionable view-changing object to identifycontent slots of the information resource that are available to bereserved.

The content slot insertion module 732 can be part of, or can includescripts executed by, one or more servers in the data processing system110. The content slot insertion module 732 can be configured toidentify, on an information resource, at least one third-party contentslot available to be reserved to serve one or more creatives. In someimplementations, the content slot insertion module 732 can be configuredto first identify all of the content slots on the information resource.The content slot insertion module 732 can then identify, from all of theidentified content slots, one or more content slots that are availableto be reserved to serve one or more creatives. In some implementations,the content slot insertion module 732 can identify content slotsavailable to be reserved by identifying content slots that are tagged orotherwise marked as being available to be reserved. In someimplementations, an information resource can include a first third-partycontent slot configured to be available to be reserved to serve one ormore creatives via a direct content placement campaign and a secondthird-party content slot configured to display creatives selected forinsertion via an content placement auction. In some implementations, thecontent publisher can identify the content slots that the contentpublisher would like to participate in a direct content placementcampaign. In some implementations, the content publisher can tag thecontent slot via a source code of the information resource. In someimplementations, the content slot insertion module 732 can configure oneor more of the content slots of the information resource to be reserved.This can be possible by configuring the content slot to only receivecreatives from the data processing system 110.

The content slot insertion module 732 can be configured to insert atleast one actionable reservation object within one or more third-partycontent slots available to be reserved to serve one or more creatives.The actionable reservation object can be configured to provideinformation for reserving the identified third-party content slot todisplay the creative responsive to an action being taken on theactionable reservation object. In some implementations, the actionablereservation object can be configured to cause the data processing system110 to provide a reservation interface through which a content providercan reserve the content slot in which the reservation object wasinserted in response to an action being taken on the actionablereservation object. The actionable reservation object can include one ormore of a link, a creative, a button, an icon, or any other actionableobject on which an action can be taken via an input device or mechanism.

In some implementations, the content slot insertion module 732 can beconfigured to insert an content slot occupying object within the contentslot in which the actionable reservation object is inserted or placed.The content slot occupying object can be configured to occupy thecontent slot. In some implementations, the content slot occupying objectcan be translucent such that the content slot occupying object partiallyobscures an underlying creative previously inserted in the content slot.In some implementations, the content slot occupying object can be opaquesuch that it completely obscures an underlying creative. In someimplementations, the content slot occupying object can partially occupythe content object. In some implementations, the content slot occupyingobject can match the dimensions of the content slot. In someimplementations, the content slot occupying object be of a particularcolor that stands out against a background color of the informationresource. In this way, the content slot occupying object can help acontent provider view the area where a creative of the content providerwill appear if the content provider reserves the content slot. In someimplementations, the content slot insertion module 732 can select ashape, size, color, translucency, opacity, or other characteristics ofthe content slot occupying object.

The content slot insertion module 732 can be configured to render theinformation resource including the inserted actionable reservationobject within the identified third-party content slot. In someimplementations, the content slot insertion module 732 can be configuredto render the information resource including the inserted actionablereservation object within the identified third-party content slot inresponse to an action being taken on the view-changing object. FIG. 8Billustrates a screenshot of an information resource including actionablereservation objects object within the identified third-party contentslot.

Referring now to FIG. 8A, a display depicting an information resourcewith an actionable view-changing object to identify content slots of theinformation resource that are available to be reserved is shown. Thedisplay shows an information resource 800 that includes a primarycontent area 802 in which primary content 804 is displayed. Theinformation resource also includes a plurality of content slots810A-810C (generally content slot 810). The plurality of content slotscan be configured to hold creatives 812A-812C (generally creative 812)that are inserted within the content slots 810 when the informationresource 800 is served. The content slots 810A-810C have designatedlocations on the information resource and have a predetermined contentslot size. The location and size of the content slots can factor intothe cost for reserving one of these slots. As such, for a contentprovider interested in reserving one of the content slots, the contentprovider may be interested in visually identifying the content slot thecontent provider is interested in reserving.

The information resource 800 further includes an actionableview-changing object 830. The actionable view-changing object 830 can beconfigured to generate a request to provide an interface for reservingone or more identified third-party content slots in which to insert thecreative responsive to an action being taken on the actionable object.The actionable view-changing object can be a link, an icon, a banner, acreative, or any other content item upon which an action can be taken.As shown in FIG. 8A, the actionable view-changing object is a link thatcontains the text “enable advertise here.” Instances of actions caninclude a click, a hover over, a tap, or some other way of actuating theactionable object. By taking an action on the actionable view-changingobject 830, the actionable object module 730 or the data processingsystem 110 can render a second information resource.

FIG. 8B is a display depicting the same information resource 800 havingactionable reservation objects 816A-816C (generally actionablereservation object 816) positioned within the content slots 810A-810C ofthe information resource 800. The actionable reservation objects can beconfigured to reserve the content slots 810 of the information resource800. The information resource 800 further includes content slotoccupying objects 814A-814C positioned over the creatives 812 shown inFIG. 8A. In some implementations, the content slot occupying objects 814can be opaque, translucent or transparent. In some implementations, thecontent slot occupying objects 814 can be configured to cover anycreatives inserted in the content slot. In some implementations, thecontent slot occupying objects 814 can be inserted in the content slots810 to attract the attention of a content provider. In someimplementations, the content slot occupying objects 814 can be insertedto demonstrate, to a content provider, an area of the informationresource where a creative will appear if the corresponding content slotis reserved.

The actionable reservation objects 816 can be inserted within thecontent slots 810 responsive to an action taken on the actionableview-changing object 830 shown in FIG. 8A. The actionable reservationobjects 816 can be a link, an icon, a banner, a creative, or any othercontent item on which an action can be taken. In some implementations,the reservation objects 816 can be configured to provide, for display, areservation interface, such as the reservation interface shown in FIG.5B, through which a content provider can reserve a content slotcorresponding to the reservation object on which the action was taken.As such, each of the reservation objects corresponds to a reservationinterface for reserving the content slot that holds or contains thereservation object on which the action was taken. For instance, if acontent provider clicked on the reservation object 816A, the dataprocessing system 110 can be configured to provide a reservationinterface for reserving the content slot 810A. Conversely, if thecontent provider clicked on the reservation object 816B, the dataprocessing system 110 can be configured to provide a reservationinterface for reserving the content slot 810B. In this way, by providingthe reservation object within the actual content slot the contentprovider intends to reserve, errors relating to reserving a content slotthat the content provider did not intend to reserve can be reduced, ifnot eliminated.

Responsive to an action taken on one of the reservation objects816A-816C, the data processing system 110 can provide a reservationinterface for reserving the content slot associated with the reservationobject on which the action was taken. An screenshot of the reservationinterface is shown in FIG. 5B.

The reservation interface module 332 can be part of, or can includescripts executed by, one or more servers in the data processing system110. A discussion of the reservation interface module 332 and itsfunctionality have previously been described above in Section B. In someimplementations, the reservation interface module 332 can be configuredto provide, for display, a reservation interface through which athird-party content provider can reserve one or more content slots ofinformation resources of a content publisher. The reservation interfacemodule 332 can be configured to provide the reservation interface fordisplay responsive to receiving a request to receive information forinserting a creative within one or more third-party content slotsavailable on the information resource. In some implementations, thereservation interface module 332 can be configured to provide thereservation interface to a third-party content provider in response tothe third-party content provider taking an action on an reservationobject, such as the reservation object 816, provided for display on aninformation resource of the content publisher. For instance, thereservation interface module 332 may provide the reservation interface550 shown in FIG. 5B to a third-party content provider in response tothe third-party content provider clicking on the reservation object 816provided for display on the information resource 800 shown in FIG. 8B.

In some implementations, the reservation interface can be provided on oras an information resource of the data processing system 110. Thereservation interface can be configured to allow a third-party contentprovider to reserve one or more content slots of one or more informationresources of a content publisher. The reservation interface can beconfigured to provide information that a third-party content providercan benefit from when determining whether to reserve one or more contentslots of an information resource.

The information can identify a plurality of third-party content slots ofone or more information resources of the content publisher. In addition,the information can include visitor traffic-related information that maybe useful to the third-party content provider when deciding whether toreserve one or more third-party content slots on one or more informationresources of the content publisher. This visitor traffic-relatedinformation can include information about the number of visitorsvisiting one or more information resources of the content publisher, thetypes of visitors, the various types of content slots on the one or moreinformation resources available to be reserved, the cost to reserve oneor more of the content slots, amongst others. In some implementations,the reservation interface module 332 can receive the traffic-relatedinformation from the activity log data maintained by the data processingsystem 110 for the information resource of the content publisher. Asdescribed above, a script provided by the solicitation module 330 andincluded within the information resources of the content publisher mayenable the data processing system 110 to receive activity dataassociated with visitor activity at the information resource andmaintain logs of the activity data. In some implementations, thereservation interface module 332 can be configured to determinetraffic-related information or statistics from the traffic relatedinformation and provide the information for display on the reservationinterface.

In addition to the visitor traffic-related information, the reservationinterface can include a visual representation of the informationresource. The visual representation of the information resource caninclude one or more visual indicators identifying the content slots onthe information resource. In this way, the third-party content providercan be made aware of where a creative will appear when served on theinformation resource. In some implementations, the interface can beconfigured such that when an object on the interface is hovered over, avisual indicator located on, near or around the content slot on thevisual representation of the information resource corresponding to theobject is actuated.

In some implementations, the reservation interface module 332 can alsobe configured to determine the cost for reserving each of the contentslots associated with the content publisher that are available forreservation. In some implementations, the reservation interface module332 can receive the cost for reserving a content slot from the contentpublisher. In some implementations, the reservation interface module 332can determine the cost for reserving a content slot based on thetraffic-related information associated with the information resourcesand the content slots themselves, including the size of the contentslot, the daily number of impressions and a number of conversions,amongst others. In some implementations, the cost can be based on supplyand demand. For instance, based on a number of available dates, thereservation interface module 332 can determine a level of demand for thecontent slot and set a cost accordingly. In some implementations, thereservation interface module 332 can look at historical reservations todetermine how much content providers are willing to pay. In someimplementations, the reservation interface module 332 can identify thecost of other content publishers having similar traffic relatedstatistics or include content related to similar topics to determine acost for the content slots. In some implementations, the reservationinterface module 332 may be configured to determine a cost based on theavailable inventory of content slots of similar sites.

The reservation interface module 332 can be configured to determineseparate costs for reserving each of the content slots. The cost of acontent slot can be dictated in part by location of the content slot,the size of the content slot, the type of creative being inserted (forinstance, creatives including video, creatives including audio, creativewith content extensions) in addition to the content publisher associatedwith the information resource on which the content slot is inserted.

In some implementations, the reservation interface module 332 can alsobe configured to determine the cost to reserve a content slot based onan availability of the content slot. For instance, a content slot thatis available for one day can be priced differently than a content slotthat is available for a longer period of time. Moreover, the cost toreserve a content slot can vary based on the day of the week, the timeof the year, the season, amongst others. Generally, the reservationinterface module 332 can determine the cost to reserve a content slotbased on an anticipated number of views to be received during aparticular reservation period.

The reservation interface module 332 can be configured to receive, froma third-party content provider, a request to reserve a particularcontent slot identified on the reservation interface. Stated in anotherway, the request to reserve a particular content slot can be a requestto insert one or more creatives within a particular third-party contentslot of the plurality of third-party content slots when serving aninformation resource on which the content slot according to areservation policy. The request can identify the one or more creativesto insert within the content slot being reserved. The reservation policycan identify one or more rules according to which the one or morecreatives are to be provided for display within the third-party contentslot of the information resource when the information resource isserved. For instance, the reservation policy can include a reservationschedule that identifies a time period over which to reserve theparticular content slot. In some implementations, the third-partycontent provider can select the time period via a calendar object. Insome implementations, the granularity of the reservation schedule canrange from a minute, an hour, a day, a week, or even longer. Inaddition, the third-party content provider can include one or morecreatives in the request to reserve a particular content slot. In someimplementations, the reservation interface module 332 can be configuredto allow the third-party content provider to identify a percentage ofimpressions that each of the creatives should receive. In someimplementations, the reservation interface module 332 can be configuredto allow the third-party content provider to indicate in the requestthat a first creative is to receive 50% of the impressions, the secondcreative is to receive 30% of the impressions and the third creative isto receive 20% of the impressions. The reservation interface module 332can receive such requests, identify one or more content servingrestrictions and create one or more rules which form the reservationpolicy according to which the creatives are inserted in the contentslot.

The reservation interface module 332, in response to receiving therequest to reserve a particular content slot, can provide a payment formto the third-party content publisher. In some implementations, thethird-party content publisher can have an account with the dataprocessing system 110 and therefore, payments may be automaticallyprocessed once a request to reserve a particular content slot isreceived. The reservation interface module 332 can receive paymentdetails from the third-party content provider and process the request toinsert the creative within the particular third-party content slotaccording to the reservation policy associated with the request.

The reservation interface module 332 can be configured to store dataassociated with the request to insert the creative within the particularthird-party content slot. The stored data can be useful to provide, fordisplay, the creative within the particular third-party content slot ofthe information resource according to the reservation policy. In someimplementations, the reservation interface module 332 can store the datain a database, such as the database 140.

FIG. 9 is a flow diagram depicting an method of providing an actionableobject within a third-party content slot of an information resource of acontent publisher. In brief overview, the method can receive anindication of interest in providing, for display, a creative within atleast one third-party content slot of an information resource of acontent publisher (Block 905). The method can identify at least onethird-party content slot included in the information resource availableto be reserved to serve one or more creatives (Block 910). The methodcan insert an actionable object within the identified third-partycontent slot (Block 915). The method can then render the informationresource including the inserted actionable object within the identifiedthird-party content slot (Block 920).

In further detail, the method can receive a request to receive anindication of interest in providing, for display, a creative within atleast one third-party content slot of an information resource of acontent publisher (Block 905). The information resource includes one ormore third-party content slots available to be reserved to servecreatives. In some implementations, the method may receive the requestto receive an indication of interest from a content publisher. In someimplementations, the method may receive the request to receive anindication of interest from a content publisher the via an interfacethrough which a content provider can communicate with a data processingsystem. In some implementations, the content slots can be configured toreceive creatives that are selected by an advertising auction system. Insome implementations, the content publisher, may, via the interface,provide an indication of interest by selecting a user input objectprovided on the interface. In some implementations, the contentpublisher may provide the indication of interest responsive to amarketing effort organized or performed by the method.

The method can configure one or more information resources of a contentpublisher to include an actionable view-changing object. In someimplementations, the method can provide, to a content publisher, asoftware construct, such as a script, code, or other softwareinstructions, that when inserted in an information resource of thecontent publisher, can cause an actionable view-changing object toappear on the information resource when the information resource isserved. In some implementations, the method can automatically configureone or more information resources of a content publisher to include anactionable object by providing a creative that includes the actionableview-changing object for insertion into a content slot of theinformation resources. In some implementations, the content slot inwhich the creative that includes the actionable view-changing object isinserted can be configured to receive creatives provided by the method.In some implementations in which the actionable view-changing object isprovided for display on an area of the information resource that isoutside a content slot, source code of the information resource may bemodified to include the software construct. In some implementations, themethod may modify the source code of the information resource or thecontent publisher may modify the source code. In some implementations,the view-changing actionable object can be configured to cause themethod to render the information resource such that actionablereservation objects are inserted within the identified third-partycontent slot.

The method can identify at least one third-party content slot includedin the information resource available to be reserved to serve one ormore creatives (Block 910). In some implementations, the method canfirst identify all of the content slots on the information resource. Themethod can then identify, from all of the identified content slots, oneor more content slots that are available to be reserved to serve one ormore creatives. In some implementations, the method can identify contentslots available to be reserved by identifying content slots that aretagged or otherwise marked as being available to be reserved. In someimplementations, an information resource can include a first third-partycontent slot configured to be available to be reserved to serve one ormore creatives via a direct content placement campaign and a secondthird-party content slot configured to display creatives selected forinsertion via an content placement auction. In some implementations, thecontent publisher can identify the content slots that the contentpublisher would like to participate in a direct content placementcampaign. In some implementations, the content publisher can tag thecontent slot via a source code of the information resource. In someimplementations, the method can configure one or more of the contentslots of the information resource to be reserved. This can be possibleby configuring the content slot to only receive creatives from themethod.

The method can insert an actionable object within the identifiedthird-party content slot available to be reserved to serve one or morecreatives (Block 915). The actionable object can be configured togenerate a request to provide an interface for reserving the identifiedthird-party content slot to display the creative responsive to an actionbeing taken on the actionable object. In some implementations, theactionable reservation object can be configured to cause the method toprovide a reservation interface through which a content provider canreserve the content slot in which the reservation object was inserted inresponse to an action being taken on the actionable reservation object.The actionable reservation object can include one or more of a link, acreative, a button, an icon, or any other actionable object on which anaction can be taken via an input device or mechanism.

In some implementations, the method can insert an content slot occupyingobject within the content slot in which the actionable reservationobject is inserted or placed. The content slot occupying object can beconfigured to occupy the content slot. In some implementations, thecontent slot occupying object can be translucent such that the contentslot occupying object partially obscures an underlying creativepreviously inserted in the content slot. In some implementations, thecontent slot occupying object can be opaque such that it completelyobscures an underlying creative. In some implementations, the contentslot occupying object can partially occupy the content object. In someimplementations, the content slot occupying object can match thedimensions of the content slot. In some implementations, the contentslot occupying object be of a particular color that stands out against abackground color of the information resource. In this way, the contentslot occupying object can help a content provider view the area where acreative of the content provider will appear if the content providerreserves the content slot. In some implementations, the method canselect a shape, size, color, translucency, opacity, or othercharacteristics of the content slot occupying object.

The method can render the information resource including the insertedactionable reservation object within the identified third-party contentslot (Block 920). In some implementations, the content slot insertionmodule 732 can render the information resource including the insertedactionable reservation object within the identified third-party contentslot in response to an action being taken on the view-changing object.

D. Automatically Resizing a Creative Based on Dimensions of a ContentSlot

FIG. 11 illustrates an system 1100 for automatically resizing a creativebased on dimensions of a content slot via at least one computer network,such as the network 105. The system 1100 can include one or morecomponents of the system 100 shown in FIG. 1, the system 300 shown inFIG. 3 and the system 700 shown in FIG. 7. The system 1100 includes thedata processing system 110 shown in FIGS. 1, 3 and 7, but includesadditional modules configured to automatically resize a creative basedon dimensions of a content slot.

The data processing system 110 can include a creative analysis module1030 and a creative processing module 1032. The data processing systemcan receive a content object, such as a creative (for instance, an ad)including one or more visual content items. The creative can have afirst set of dimensions. The data processor can determine a content slothaving a second set of dimensions in which to insert the creative. Thedata processor can determine an aspect ratio of the creative and anaspect ratio of the content slot. The data processor can apply edgedetection to identify edges of the visual content items included in thecreative. The data processor can then apply a bounding box around asubstantial portion of the identified edges of the content items. Thebounding box can be sized to have an aspect ratio that corresponds to asmaller of the aspect ratio of the creative and the aspect ratio of thecontent slot. The data processor can then can resize the bounding box tofit within the second set of dimensions corresponding to the contentslot.

FIGS. 11A-11E depict various stages of a process of automaticallyresizing a creative based on dimensions of a content slot. A creative1102 is shown in FIG. 11A. The creative 1102 is a rectangle having acorresponding length and width and a corresponding aspect ratio. Thecreative 1102 includes multiple content items, such as the letters thatspell out “GET STARTED”, “DRUPAL”, “TM” and the number “7”. In addition,the creative includes content items that form the background design ofthe creative. The creative 1102 is then processed over a series ofstages, the result of each stage shown in the FIGS. 11B-11E. Thedescription of the creative analysis module 1030 and the creativeprocessing module 1032 shown in FIG. 10 are described herein with theaid of the visual representations shown in FIGS. 11B-11E.

The creative analysis module 1030 of the data processing system 110 canbe part of, or can include scripts executed by, one or more servers inthe data processing system 110. In some implementations, the creativeanalysis module 1030 can be configured to receive a content object, suchas a creative 1102 (for instance, an ad) including one or more visualcontent items. In some implementations, the creative analysis module1030 can receive the creative from a third-party content publisherseeking to participate in a content placement campaign. In someimplementations, the creative analysis module 1030 can receive a requestto create one or more creatives suitable for insertion into one or morecontent slots. In some implementations, the content slots may correspondto standard content slot sizes. In some implementations, the contentslots may have dimensions that are different from the standard contentslot sizes.

The creative analysis module 1030 can be configured to determine thedimensions of the creative 1102. In some implementations, the creativeanalysis module 1030 can determine the dimensions of the creative 1102by analyzing the locations between the pixels that define the corners ofthe creative 1102. In some implementations, the creative analysis module1030 can determine the dimensions of the creative 1102 through otherknown techniques for determining dimensions of images.

The creative analysis module 1030 can be configured to identify one ormore content slots in which a resized version of the creative 1102 canbe inserted. FIG. 11E shows a resized creative 1114. In someimplementations, the request identifying the creative 1102 can include arequest to create a plurality of creatives that correspond to one ormore standard content slots. In some implementations, the creativeanalysis module 1030 can determine or identify dimensions of the contentslots in which a resized creative 1114 derived from the originalcreative 1102 can be inserted.

The creative analysis module 1030 can be configured to determine anaspect ratio of the content slot in which the resized creative 1114 canbe inserted. The creative analysis module 1030 can determine the aspectratio based on the dimensions of the content slot. The aspect ratio of arectangle is a ratio of the length to a width of the rectangle. Theaspect ratio of a square is 1. The creative analysis module 1030 alsocan be configured to determine an aspect ratio of the original creative1102. The creative analysis module 1030 can determine the aspect ratiobased on the dimensions of the creative 1102. The creative analysismodule 1030 can be configured to compare the aspect ratios of thecontent slot and the aspect ratio of the creative and determine which ofthe aspect ratio of the content slot or the creative has the smalleraspect ratio.

The creative processing module 1032 of the data processing system 110can be part of, or can include scripts executed by, one or more serversin the data processing system 110. In some implementations, the creativeprocessing module 1032 can be configured to apply edge detection toidentify edges of the visual content items included in the creative. Insome implementations, the creative processing module 1032 can applylaplacian edge detection to the original creative 1102 to form aprocessed creative 1104. In some such implementations, the creativeprocessing module 1032 can apply laplacian edge detection with furtherthresholding of a predetermined threshold level. In someimplementations, the predetermined threshold level can be around0.5-0.9, or more specifically, around 0.6-0.8, or more specifically,around 0.7. In some implementations, the creative processing module 1032can apply gradient edge detection to the original creative 1102 or theprocessed creative 1104. In some implementations, the creativeprocessing module 1032 can apply differential edge detection to detectsub-pixels. In some implementations, the creative processing module 1032can apply edge thinning to the original creative 1102 or the processedcreative 1104 to filter out any artifacts that have dimensions that arebelow a certain threshold.

The creative processing module 1032 can be configured to apply abounding box 1108 around a substantial portion of the identified edgesof the content items of the processed creative 1104. The bounding box1108 can be sized to have an aspect ratio that corresponds to a smallerof the aspect ratio of the original creative and the aspect ratio of thecontent slot in which to insert the resized creative 1114. In someimplementations, applying a bounding box 1108 around a substantialportion of the identified edges of the content items of the creative1104 can include applying a bounding box 1108 around all of the contentitems. In some implementations, applying a bounding box 1108 around asubstantial portion of the identified edges of the content items of theprocessed creative 1104 can include applying the smallest possiblebounding box that encompasses substantially all of the content itemswithin the creative, for instance, about 95% or more (in someimplementations, about 99%) of the content items included in thecreative. In some implementations, the bounding box can be applied suchthat pixels that are part of content items deemed important to theoriginal creative 1104 are included within the bounding box 1108. Insome implementations, the creative processing module 1032 can identifycontent items, such as letters or numbers, as important to the creative1102. As such, the creative processing module 1032 can apply a boundingbox 1108 such that none of the pixels that form part of the contentitems identified as important lie outside the bounding box 1108.

The creative processing module 1032 can also be configured to determinewhether a particular creative can be resized to fit within a particularcontent slot without compromising on the quality of the creative. Insome implementations, the creative processing module can determine thatthe particular creative cannot be resized to fit within a particularcontent slot in response to determining that a bounding box cannot besized to include substantially all portions of all of the visual contentitems deemed important to the creative. For instance, the creativeprocessing module 1032 can determine that the original creative 1102cannot be resized to fit within a particular content slot in response todetermining that a bounding box cannot be sized to include more than 98%of the pixels of the content items deemed important to the creative. Insome implementations, the boundary box may be small enough such that noportion of the boundary box can extend beyond the boundary of thecreative to be resized. In some implementations, the boundary box may besmall enough such that only a predetermined threshold, for instance, 10%of the area defined by the boundary box can extend beyond the boundaryof the creative to be resized. In some implementations, the creativeprocessing module 1032 can generate a notification indicating that thecreative cannot be automatically resized to fit within the dimensions ofthe content slot in response to determining that the bounding box cannotbe sized to include substantially all portions of all of the visualcontent items deemed important to the creative.

In some implementations, the creative processing module 1032 can beconfigured to increase the size of the bounding box 1108 to include amargin. The margin can be a predetermined amount, for instance, adding apredetermined number of pixels to each dimension. In someimplementations, the number of pixels can range from about 10-200pixels. In some implementations, size of the margin can be determinedheuristically. In some implementations, the size of the margin can beprovided by the third-party content provider. In some implementations,the size of the margin can be based on a percentage of the dimensions ofthe bounding box. In some implementations, the margins can be appliedsuch that the aspect ratio of the bounding box 1108 remains the same.FIG. 11D shows a cropped creative 1112 corresponding to the croppedportion of the processed creative 1104. The cropped portion correspondsto the portion encompassed by the bounding box 1108. Once the processedcreative 1104 is cropped, the edge detection filter can be removed.

The creative processing module 1032 can then can resize the croppedcreative 1112 to form the resized creative 1114 that is sized to fitwithin the second set of dimensions corresponding to the content slot.The cropped creative 1112 can be scaled to a size that can fit withinthe content slot. The creative processing module 1032 can scale thecropped creative by matching a length of the cropped creative 1112 to alength of the content slot and matching the width of the croppedcreative 1112 to a width of the content slot. As the cropped creativehas an aspect ratio that corresponds to the aspect ratio of the contentslot, the aspect ratio of the cropped creative 1112 remains the same asthe aspect ratio of the resized creative 1114.

In some implementations, the creative processing module 1032 can storethe resized creative in a data store, such as the database 1040. In someimplementations, the creative processing module 1032 can provide theresized creative, for display, to the third-party content provider. Thecreative processing module 1032 can provide an interface through whichthe third-party content provider can approve or reject the resizedcreative for use in content placement campaigns. In someimplementations, the creative processing module 1032 can provide aninterface to the third-party content provider or to any other entitythrough which the bounding box can be repositioned or resized. In thisway, the third-party content provider or other entity can influence theappearance of the resized creative. In some implementations, thecreative processing module 1032 can further allow the third-partycontent provider or other entity to modify the resized creative using agraphics interface. The graphics interface, can for instance, be used tochange colors, add lines or other visual content, modify or removeexisting visual content, amongst others.

In some implementations, the creative processing module 1032 can comparea resized creative that was rejected for use in content placementcampaigns with a resized creative of the same size and derived from thesame original creative that was approved to better understand why theresized creative was rejected. In this way, the creative processingmodule 1032 can identify particular characteristics that may cause aresized image to be rejected and thereby, improve the process ofautomatically resizing creatives to avoid such characteristics in thefuture. In this way, the creative processing module 1032 can beself-learning or self-improving. In some implementations, as part of thecreative processing module's ability to self-learn, the creativeprocessing module 1032 can also be configured to analyze existingcreatives that have been approved for a particular content slot size toidentify characteristics of such creatives.

In some implementations, the creative processing module 1032 can, aloneor in conjunction with other modules of data processing system 110,receive requests to provide creatives corresponding to a particularcontent slot size and in response to the requests, retrieve or generateresized creatives and provide such resized creatives.

FIG. 12 is a flow diagram depicting an method of automatically resizinga creative based on dimensions of a content slot, according to anillustrative implementation. In brief overview, the method 1200, via aprocessor of a data processing system, such as the data processingsystem 1000 shown in FIG. 10, can receive a content object, such as acreative (for instance, an ad) including one or more visual contentitems (Block 1205). The method can determine a content slot having asecond set of dimensions in which to insert the creative (Block 1210).The method can determine an aspect ratio of the creative and an aspectratio of the content slot (Block 1215). The method can apply edgedetection to identify edges of the visual content items included in thecreative (Block 1220). The method can then apply a bounding box around asubstantial portion of the identified edges of the content items (Block1225). The method can then can resize the bounding box to fit within thesecond set of dimensions corresponding to the content slot (Block 1230).

In further detail, the method 1200 can receive a content object, such asa creative including one or more visual content items (Block 1205). Insome implementations, the method can receive the creative (originalcreative) from a third-party content publisher seeking to participate ina content placement campaign. In some implementations, the method canreceive a request to create one or more resized creatives suitable forinsertion into one or more content slots based on the original creative.In some implementations, the content slots may correspond to standardcontent slot sizes. Instances of standard slot sizes include 728×90,468×60, 320×50, 50×50, amongst others. In some implementations, thecontent slots may have dimensions that are different from the standardcontent slot sizes.

The method can be configured to determine the dimensions of the originalcreative. In some implementations, the method can determine thedimensions of the original creative by analyzing the locations betweenthe pixels that define the corners of the original creative. In someimplementations, the method can determine the dimensions of the originalcreative through other known techniques for determining dimensions ofimages.

The method can determine a content slot having a second set ofdimensions in which to insert a resized creative derived from theoriginal creative (Block 1210). In some implementations, the method canidentify one or more content slots in which a resized creative derivedfrom the original creative received by the method can be inserted. Insome implementations, the request identifying the original creative caninclude a request to create a plurality of resized creatives thatcorrespond to one or more standard content slots. In someimplementations, the method can determine or identify dimensions of thecontent slots in which a resized creative 1114 derived from the originalcreative 1102 can be inserted. In some implementations, the method canbe configured to automatically generate a request to resize the originalcreative into one or more resized creatives that can fit within or matchone or more content slot sizes, and in particular, standard content slotsizes.

The method can determine an aspect ratio of the original creative and anaspect ratio of the content slot in which to insert a resized creativederived from the original creative (Block 1215). In someimplementations, the method can be configured to determine an aspectratio of the content slot in which the resized creative can be inserted.The method can determine the aspect ratio based on the dimensions of thecontent slot. The method can determine an aspect ratio of the originalcreative. The method can determine the aspect ratio based on thedimensions of the creative. The method can compare the aspect ratios ofthe content slot and the aspect ratio of the creative and determinewhich of the aspect ratio of the content slot or the creative has thesmaller aspect ratio.

The method can apply edge detection (Block 1220). In someimplementations, the method can apply edge detection to identify edgesof the visual content items included in the original creative. In someimplementations, the method can apply laplacian edge detection to theoriginal creative to form or generate a processed creative. In some suchimplementations, the method can apply laplacian edge detection withfurther thresholding of a predetermined threshold level. In someimplementations, the predetermined threshold level can be around0.5-0.9, or more specifically, around 0.6-0.8, or more specifically,around 0.7. In some implementations, the method can apply gradient edgedetection to the original creative or the processed creative. In someimplementations, the method can apply differential edge detection todetect sub-pixels. In some implementations, the method can apply edgethinning to the original creative or the processed creative to filterout any artifacts that have dimensions that are below a certainthreshold.

The method can apply a bounding box around a substantial portion of theidentified edges of the content items (Block 1225). In someimplementations, the bounding box can be sized to have an aspect ratiothat corresponds to a smaller of the aspect ratio of the originalcreative and the aspect ratio of the content slot in which to insert theresized creative. In some implementations, applying a bounding box 1108around a substantial portion of the identified edges of the contentitems of the processed creative can include applying a bounding boxaround all of the content items. In some implementations, applying abounding box around a substantial portion of the identified edges of thecontent items of the processed creative can include applying thesmallest possible bounding box that encompasses substantially all of thecontent items within the creative, for instance, about 95% or more (insome implementations, about 99%) of the content items included in thecreative. In some implementations, the bounding box can be applied suchthat pixels that are part of content items deemed important to theoriginal creative 1104 are included within the bounding box 1108. Insome implementations, the method can identify content items, such asletters or numbers, as important to the original creative. As such, themethod can apply a bounding box such that none of the pixels that formpart of the content items identified as important lie outside thebounding box.

In some implementations, the method can determine whether a particularoriginal creative can be resized to fit within a particular content slotwithout compromising on the quality of the visual aspects of theoriginal creative. In some implementations, the method can determinethat the particular creative cannot be resized to fit within aparticular content slot in response to determining that a bounding boxcannot be sized to include substantially all portions of all of thevisual content items deemed important to the creative. For instance, themethod can determine that the original creative cannot be resized to fitwithin a particular content slot in response to determining that abounding box cannot be sized to include more than 98% of the pixels ofthe content items deemed important to the creative. In someimplementations, the boundary box may be small enough such that noportion of the boundary box can extend beyond the boundary of thecreative to be resized. In some implementations, the boundary box may besmall enough such that only a predetermined threshold, for instance, 10%of the area defined by the boundary box can extend beyond the boundaryof the creative to be resized. In some implementations, the method cangenerate a notification indicating that the creative cannot beautomatically resized to fit within the dimensions of the content slotin response to determining that the bounding box cannot be sized toinclude substantially all portions of all of the visual content itemsdeemed important to the creative.

In some implementations, the method can increase the size of thebounding box to include a margin. The margin can be a predeterminedamount, for instance, adding a predetermined number of pixels to eachdimension. In some implementations, the number of pixels can range fromabout 10-200 pixels. In some implementations, size of the margin can bedetermined heuristically. In some implementations, the size of themargin can be provided by the third-party content provider. In someimplementations, the size of the margin can be based on a percentage ofthe dimensions of the bounding box. In some implementations, the marginscan be applied such that the aspect ratio of the bounding box remainsthe same. The cropped portion corresponds to the portion encompassed bythe bounding box. In some implementations, once the processed creative1104 is cropped, the method can remove the edge detection filter fromthe cropped creative.

The method can resize the bounding box to fit within the second set ofdimensions corresponding to the content slot (Block 1230). In someimplementations, the method can scale the cropped creative to a sizethat can fit within the content slot. The method can scale the croppedcreative by matching a length of the cropped creative to a length of thecontent slot and matching the width of the cropped creative to a widthof the content slot. As the cropped creative has an aspect ratio thatcorresponds to the aspect ratio of the content slot, the aspect ratio ofthe cropped creative remains the same as the aspect ratio of the resizedcreative.

The method can further include a process of providing a resized creativefor display. In some implementations, the method can receive a requestto serve a creative that corresponds to a particular content slot. Insome implementations, the request can identify a size of the contentslot. In some implementations, the method can identify the resizedcreative that corresponds to the identified size of the content slot andprovide the resized creative. In some implementations, the method canbegin the process of resizing an original creative to fit within theidentified size of the content slot responsive to receiving a request toserve a creative. In some implementations, the method can retrieve aresized creative stored in a data store responsive to receiving therequest.

FIG. 13 is a block diagram illustrating a general architecture for acomputer system that may be employed to implement elements of thesystems and methods described and illustrated herein, according to anillustrative implementation.

FIG. 13 shows the general architecture of an illustrative computersystem 1300 that may be employed to implement any of the computersystems discussed herein (including the system 100 and its componentssuch as the data processing system 110, the content placement managementmodule 130, the conversion rate model generation module 132, theconversion rate prediction module 134, the solicitation module 330, thereservation interface module 332, the creative placement module 334, theactionable object module 730, the content slot insertion module 732, thecreative analysis module 1030 and the creative processing module 1032)in accordance with some implementations. The computer system 1300 can beused to provide information via the network 105, for to preview contentitems associated with the content provider computing device 115. Thecomputer system 1300 includes one or more processors 1320communicatively coupled to at least one memory 1325, one or morecommunications interfaces 1305, and one or more output devices 1310(e.g., one or more display units) and one or more input devices 1315.The processors 1320 can be included in the data processing system 110 orthe other components of the system 100 such as the content placementmanagement module 130, the conversion rate model generation module 132,the conversion rate prediction module 134, the solicitation module 330,the reservation interface module 332, the creative placement module 334,the actionable object module 730, the content slot insertion module 732,the creative analysis module 1030 and the creative processing module1032.

The memory 1325 can include computer-readable storage media, and canstore computer instructions such as processor-executable instructionsfor implementing the operations described herein. The content placementmanagement module 130, the conversion rate model generation module 132,the, the conversion rate prediction module 134, or the database 140 caninclude the memory 1325 to store content item data, content item slotdata, information about information resources, or characteristics of enduser computing devices 125, for instance. The processor(s) 1320 canexecute instructions stored in the memory 1325 and can read from orwrite to the memory information processed and or generated pursuant toexecution of the instructions.

The processors 1320 can be communicatively coupled to or control thecommunications interface(s) 1305 to transmit or receive informationpursuant to execution of instructions. For instance, the communicationsinterface(s) 1305 can be coupled to a wired or wireless network, bus, orother communication means and can allow the computer system 1300 totransmit information to or receive information from other devices (e.g.,other computer systems). One or more communications interfaces 1305 canfacilitate information flow between the components of the system 100. Insome implementations, the communications interface(s) can be configured(e.g., via hardware components or software components) to provide awebsite as an access portal to at least some aspects of the computersystem 1300. Instances of communications interfaces 1305 include userinterfaces, the reservation interfaces, and other graphical interfacesthrough which the third-party content providers and content publisherscan communicate with the data processing system 110.

The output devices 1310 can allow information to be viewed or perceivedin connection with execution of the instructions. The input device(s)1315 can allow a user to make manual adjustments, make selections, enterdata or other information, or interact in any of a variety of mannerswith the processor during execution of the instructions.

The subject matter and the operations described herein can beimplemented in digital electronic circuitry, or in computer software,firmware, or hardware, including the structures disclosed in thisspecification and their structural equivalents, or in combinations ofone or more of them. The subject matter described in this specificationcan be implemented as one or more computer programs, e.g., one or moremodules of computer program instructions, encoded on computer storagemedium for execution by, or to control the operation of, data processingapparatus. The program instructions can be encoded on anartificially-generated propagated signal, e.g., a machine-generatedelectrical, optical, or electromagnetic signal that is generated toencode information for transmission to suitable receiver apparatus forexecution by a data processing apparatus. A computer storage medium canbe, or be included in, a computer-readable storage device, acomputer-readable storage substrate, a random or serial access memoryarray or device, or a combination of one or more of them. While acomputer storage medium is not a propagated signal, a computer storagemedium can be a source or destination of computer program instructionsencoded in an artificially-generated propagated signal. The computerstorage medium can also be, or be included in, one or more separatephysical components or media (e.g., multiple CDs, disks, or otherstorage devices). The operations described in this specification can beimplemented as operations performed by a data processing apparatus ondata stored on one or more computer-readable storage devices or receivedfrom other sources.

For situations in which the systems discussed herein collect personalinformation about users, or may make use of personal information, theusers may be provided with an opportunity to control whether programs orfeatures that may collect personal information (e.g., information abouta user's social network, social actions or activities, a user'spreferences, or a user's location), or to control whether or how toreceive content from a content server or other data processing systemthat may be more relevant to the user. In addition, certain data may beanonymized in one or more ways before it is stored or used, so thatpersonally identifiable information is removed when generatingparameters. For instance, a user's identity may be anonymized so that nopersonally identifiable information can be determined for the user, or auser's geographic location may be generalized where location informationis obtained (such as to a city, postal code, or state level), so that aparticular location of a user cannot be determined Thus, the user mayhave control over how information is collected about him or her and usedby the content server.

The term “data processing system” or “computing device” “module”“engine” “component” or “computing device” encompasses apparatuses,devices, and machines for processing data, including a programmableprocessor, a computer, a system on a chip, or multiple ones, orcombinations, of the foregoing, amongst others. The apparatuses caninclude special purpose logic circuitry, e.g., an FPGA (fieldprogrammable gate array) or an ASIC (application-specific integratedcircuit). The apparatus can also include, in addition to hardware, codethat creates an execution environment for the computer program inquestion, e.g., code that constitutes processor firmware, a protocolstack, a database management system, an operating system, across-platform runtime environment, a virtual machine, or a combinationthereof. The apparatus and execution environment can realize variousdifferent computing model infrastructures, such as web services,distributed computing and grid computing infrastructures. The contentplacement management module 130, the conversion rate model generationmodule 132, the or the conversion rate prediction module 134 can includeor share one or more data processing apparatuses, systems, computingdevices, or processors.

A computer program (also known as a program, software, softwareapplication, app, script, or code) can be written in any form ofprogramming language, including compiled or interpreted languages,declarative or procedural languages, and can be deployed in any form,including as a stand-alone program or as a module, component,subroutine, object, or other unit suitable for use in a computingenvironment. A computer program may, but need not, correspond to a filein a file system. A program can be stored in a portion of a file thatholds other programs or data (e.g., one or more scripts stored in amarkup language document), in a single file dedicated to the program inquestion, or in multiple coordinated files (e.g., files that store oneor more modules, sub-programs, or portions of code). A computer programcan be deployed to be executed on one computer or on multiple computersthat are located at one site or distributed across multiple sites andinterconnected by a communication network.

The processes and logic flows described in this specification can beperformed by one or more programmable processors executing one or morecomputer programs (e.g., components of the data processing system 110)to perform actions by operating on input data and generating output. Theprocesses and logic flows can also be performed by, and apparatuses canalso be implemented as, special purpose logic circuitry, e.g., an FPGA(field programmable gate array) or an ASIC (application-specificintegrated circuit).

The subject matter described herein can be implemented in a computingsystem that includes a back-end component, e.g., as a data server, orthat includes a middleware component, e.g., an application server, orthat includes a front-end component, e.g., a client computer having agraphical user interface or a web browser through which a user caninteract with an implementation of the subject matter described in thisspecification, or a combination of one or more such back-end,middleware, or front-end components. The components of the system can beinterconnected by any form or medium of digital data communication,e.g., a communication network. Communication networks can include alocal area network (“LAN”) and a wide area network (“WAN”), aninter-network (e.g., the Internet), and peer-to-peer networks (e.g., adhoc peer-to-peer networks), amongst others.

The computing system such as system 100 or system 1300 can includeclients and servers. A client and server are generally remote from eachother and typically interact through a communication network (e.g., thenetwork 105). The relationship of client and server arises by virtue ofcomputer programs running on the respective computers and having aclient-server relationship to each other. In some implementations, aserver transmits data (e.g., an HTML page) to a client device (e.g., forpurposes of displaying data to and receiving user input from a userinteracting with the client device). Data generated at the client device(e.g., a result of the user interaction) can be received from the clientdevice at the server (e.g., received by the data processing system 110from the content provider computing device 115).

While operations are depicted in the drawings in a particular order,such operations are not required to be performed in the particular ordershown or in sequential order, and all illustrated operations are notrequired to be performed. Actions described herein can be performed in adifferent order.

The separation of various system components does not require separationin all implementations, and the described program components can beincluded in a single hardware or software product. For instance, thecontent placement management module 130, the conversion rate modelgeneration module 132, the conversion rate prediction module 134, thesolicitation module 330, the reservation interface module 332, thecreative placement module 334, the actionable object module 730, thecontent slot insertion module 732, the creative analysis module 1030 andthe creative processing module 1032 can be a single module, a logicdevice having one or more processing circuits, or part of an onlinecontent item placement system.

Having now described some illustrative implementations, it is apparentthat the foregoing is illustrative and not limiting. In particular,although many of the implementations presented herein involve specificcombinations of method acts or system elements, those acts and thoseelements may be combined in other ways to accomplish the sameobjectives. Acts, elements and features discussed in connection with oneimplementation are not intended to be excluded from a similar role inother implementations or implementations.

The phraseology and terminology used herein is for the purpose ofdescription and should not be regarded as limiting. The use of“including” “comprising” “having” “containing” “involving”“characterized by” “characterized in that” and variations thereofherein, is meant to encompass the items listed thereafter, equivalentsthereof, and additional items, as well as alternate implementationsconsisting of the items listed thereafter exclusively. In oneimplementation, the systems and methods described herein consist of one,each combination of more than one, or all of the described elements,acts, or components.

Any references to implementations or elements or acts of the systems andmethods herein referred to in the singular may also embraceimplementations including a plurality of these elements, and anyreferences in plural to any implementation or element or act herein mayalso embrace implementations including only a single element. Referencesin the singular or plural form are not intended to limit the presentlydisclosed systems or methods, their components, acts, or elements tosingle or plural configurations. References to any act or element beingbased on any information, act or element may include implementationswhere the act or element is based at least in part on any information,act, or element.

Any implementation disclosed herein may be combined with any otherimplementation, and references to “an implementation,” “someimplementation,” “an alternate implementation,” “variousimplementation,” “one implementation” or the like are not necessarilymutually exclusive and are intended to indicate that a particularfeature, structure, or characteristic described in connection with theimplementation may be included in at least one implementation. Suchterms as used herein are not necessarily all referring to the sameimplementation. Any implementation may be combined with any otherimplementation, inclusively or exclusively, in any manner consistentwith the aspects and implementations disclosed herein.

References to “or” may be construed as inclusive so that any termsdescribed using “or” may indicate any of a single, more than one, andall of the described terms.

Where technical features in the drawings, detailed description or anyclaim are followed by reference signs, the reference signs have beenincluded to increase the intelligibility of the drawings, detaileddescription, and claims. Accordingly, neither the reference signs northeir absence have any limiting effect on the scope of any claimelements.

The systems and methods described herein may be embodied in otherspecific forms without departing from the characteristics thereof. Theforegoing implementations are illustrative rather than limiting of thedescribed systems and methods. Scope of the systems and methodsdescribed herein is thus indicated by the appended claims, rather thanthe foregoing description, and changes that come within the meaning andrange of equivalency of the claims are embraced therein.

What is claimed is:
 1. A computer-implemented method for providing anactionable object within a third-party content slot of an informationresource of a content publisher, comprising: receiving, by a dataprocessor, an indication of interest in providing, for display, acreative within at least one third-party content slot of an informationresource of a content publisher, the information resource including oneor more third-party content slots available to be reserved to serve oneor more creatives; identifying, by the data processor, on theinformation resource, at least one third-party content slot available tobe reserved to serve one or more creatives; inserting, by the dataprocessor, an actionable object within the identified third-partycontent slot, the actionable object configured to generate a request toprovide an interface for reserving the identified third-party contentslot to display the creative responsive to an action being taken on theactionable object; and rendering, by the data processor, the informationresource including the inserted actionable object within the identifiedthird-party content slot.
 2. The computer-implemented of claim 1,further comprising: receiving, by the data processor, an indication ofan action taken on the actionable object; and providing, by the dataprocessor, the interface for reserving the identified third-partycontent slot content slot.
 3. The computer-implemented of claim 2,wherein providing, by the data processor, the interface for reservingthe identified third-party content slot includes rendering, by the dataprocessor, information for reserving one or more of the third-party itemslots of the information resource.
 4. The computer-implemented of claim2, wherein providing, by the data processor, the interface for reservingthe identified third-party content slot includes rendering a preview ofthe information resource, the preview of the information resourceincluding at least one label identifying the identified third-partycontent slot.
 5. The computer-implemented of claim 1, wherein anindication of interest in providing, for display, a creative within atleast one third-party content slot of an information resource includesreceiving the request responsive to an action being taken on aview-changing actionable object, the view-changing actionable objectconfigured to cause the data processor to render the informationresource including the inserted actionable object within the identifiedthird-party content slot.
 6. The computer-implemented method of claim 1,wherein identifying, on the information resource, at least one at leastone third-party content slot includes identifying one or morethird-party content slots having a tag, the tag indicating that thethird-party content slot is configured to allow a creative to beinserted via a specific content placement management application.
 7. Thecomputer-implemented method of claim 1, wherein the information resourceincludes a first third-party content slot configured to be reserved todisplay the creative and a second third-party content slot configured todisplay creatives selected for insertion via an content placementauction.
 8. The computer-implemented method of claim 1, wherein theactionable object is sized to fit within the identified third-partycontent slot and includes a visual representation of one of a link, abutton and a banner.
 9. The computer-implemented method of claim 1,wherein receiving the request includes receiving the request responsiveto an information resource of a content publisher including one or morethird-party content slots rendered on a computing device.
 10. A systemfor providing an actionable object within a third-party content slot ofan information resource of a content publisher, comprising a dataprocessing system configured to: receive an indication of interest inproviding, for display, a creative within at least one third-partycontent slot of an information resource of a content publisher, theinformation resource including one or more third-party content slotsavailable to be reserved to serve one or more creatives; identify, onthe information resource, at least one third-party content slot includedin the information resource available to be reserved to serve one ormore creatives; insert an actionable object within the identifiedthird-party content slot, the actionable object configured to generate arequest to provide an interface for reserving the identified third-partycontent slot to display the creative responsive to an action being takenon the actionable object; and render the information resource includingthe inserted actionable object within the identified third-party contentslot.
 11. The system of claim 10, wherein the data processing system isfurther configured to: receive an indication of an action taken on theactionable object; and provide the interface for reserving theidentified third-party content slot content slot.
 12. The system ofclaim 11, wherein providing the interface for reserving the identifiedthird-party content slot includes rendering information for reservingone or more of the third-party item slots of the information resource.13. The system of claim 11, wherein providing the interface forreserving the identified third-party content slot includes rendering apreview of the information resource, the preview of the informationresource including at least one label identifying the identifiedthird-party content slot.
 14. The system of claim 10, wherein anindication of interest in providing, for display, a creative within atleast one third-party content slot of an information resource includesreceiving the request responsive to an action being taken on aview-changing actionable object, the view-changing actionable objectconfigured to cause the data processor to render the informationresource including the inserted actionable object within the identifiedthird-party content slot.
 15. The system of claim 10, whereinidentifying at least one third-party content slot included in theinformation resource includes identifying one or more third-partycontent slots having a tag, the tag indicating that the third-partycontent slot is configured to allow a creative to be inserted via aspecific content placement management application.
 16. The system ofclaim 10, wherein the information resource includes a first third-partycontent slot configured to be reserved to display the creative and asecond third-party content slot configured to display creatives selectedfor insertion via an content placement auction.
 17. The system of claim10, wherein the actionable object is sized to fit within the identifiedthird-party content slot and includes a visual representation of one ofa link, a button and a banner.
 18. The system of claim 10, whereinreceiving the request includes receiving the request responsive to aninformation resource of a content publisher including one or morethird-party content slots rendered on a computing device.
 19. Acomputer-readable storage medium device storing instructions that whenexecuted by one or more data processors, cause the one or more dataprocessors to perform operations, comprising: receiving an indication ofinterest in providing, for display, a creative within at least onethird-party content slot of an information resource of a contentpublisher, the information resource including one or more third-partycontent slots available to be reserved to serve one or more creatives;identifying, on the information resource, at least one third-partycontent slot included in the information resource available to bereserved to serve one or more creatives; inserting an actionable objectwithin the identified third-party content slot, the actionable objectconfigured to generate a request to provide an interface for reservingthe identified third-party content slot to display the creativeresponsive to an action being taken on the actionable object; andrendering the information resource including the inserted actionableobject within the identified third-party content slot.
 20. Thecomputer-readable storage medium device of claim 19, further comprising:receiving an indication of an action taken on the actionable object; andproviding the interface for reserving the identified third-party contentslot content slot.